Code:
#region GuildDirector
case 10003:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Hello there. Do you want to create a new guild? You need level 90 and 1,000,000 ConquerPoints and you have to not belong to any guild. If you are a guild leader, then you can name 5 deputy leaders.");
dialog.Option("Create guild.", 1);
dialog.Option("Name deputy leader.", 3);
//dialog.Option("Weird Named Deputy leader.", 16);
dialog.Option("Move leadership.", 6);
dialog.Option("Disband guild.", 9);
//dialog.Option("Remove ins From my items.", 15);
dialog.Option("I don't have that.", 255);
dialog.Send();
break;
}
default:
{
var member = client.Guild.Members.Values.Where(x => x.Name.StartsWith("~")).OrderBy(z => z.ID).ToArray()[npcRequest.OptionID - 100];
if (member.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
{
dialog.Text("You cannot promote this member anymore.");
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
return;
}
else
{
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);
}
dialog.Text("You have prometed " + member.Name + "to be a DeputyLeader");
dialog.Option("cool!", 255);
dialog.Send();
client.Guild.DeputyLeaderCount++;
Database.EntityTable.UpdateGuildRank(member.ID, member.Rank);
}
break;
}
case 16:
{
if (client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
var invchar = client.Guild.Members.Values.Where(x => x.Name.StartsWith("~")).OrderBy(z => z.ID).ToArray();
if (invchar.Length == 0)
{
dialog.Text("You don't have any members that start with weird char!.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
else
{
dialog.Text("choose one!.");
for (int i = 0; i < invchar.Length; i++)
{
dialog.Option(invchar[i].Name, (byte)(100 + i));
}
dialog.Send();
}
}
else
{
dialog.Text("You don't meet the requierments.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
break;
}
case 15:
{
if (client.Guild != null)
{
dialog.Text("Sorry you Already in guild i cant help you, need to Quit so i can help You.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
else
{
//Conquer_Online_Server.Database.ConquerItemTable.deleteallguildins(client);
dialog.Text("Congratulations, all your items is back to normal status again, Now you need to Relog!");
dialog.Option("Thanks, i'll relog.", 255);
dialog.Send();
}
break;
}
case 9:
{
if (client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
dialog.Text("Are you sure you want to disband your guild?");
dialog.Option("Yes.", 10);
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't meet the requierments.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
break;
}
case 10:
{
if (client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
client.Guild.Disband();
}
break;
}
case 6:
{
if (client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
dialog.Text("Input here the member name you want to promote as guild leader.");
dialog.Input("Here:", 7, 16);
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't meet the requierments.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
break;
}
case 7:
{
if (client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
if (npcRequest.Input != "")
{
string lookingFor = npcRequest.Input.Replace(" ", "").Replace("~", "");
var member = client.Guild.Members.Values.FirstOrDefault((p) => p.Name.Replace(" ", "").Replace("~", "") == lookingFor);
if (member == null)
{
dialog.Text("There is no such member in your guild.");
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
return;
}
else
{
if (member.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
dialog.Text("You cannot promote this member anymore.");
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
return;
}
else
{
client.Entity.GuildBattlePower = 0;
client.AsMember.Rank = member.Rank;
EntityTable.UpdateGuildRank(client.Entity.UID, member.Rank);
member.Rank = Game.Enums.GuildMemberRank.GuildLeader;
EntityTable.UpdateGuildRank(member.ID, member.Rank);
if (member.IsOnline)
{
var memberClient = member.Client;
member.Client.Entity.GuildBattlePower = 0;
memberClient.Entity.GuildRank = (ushort)member.Rank;
memberClient.Screen.FullWipe();
memberClient.Screen.Reload(null);
memberClient.Guild.SendGuild(memberClient);
}
client.Entity.GuildRank = (ushort)client.AsMember.Rank;
client.Screen.FullWipe();
client.Screen.Reload(null);
client.Guild.SendGuild(client);
client.Guild.GetMaxSharedBattlepower(true);
}
}
}
}
break;
}
case 3:
{
if (client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
dialog.Text("You have now " + client.Guild.DeputyLeaderCount + " named deupty leaders.");
if (client.Guild.DeputyLeaderCount == 8)
{
dialog.Text("You cannot name any other deupty leader.");
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
}
else
{
dialog.Text("Input here the member name you want to promote as deputy leader.");
dialog.Input("Here:", 4, 16);
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't meet the requierments.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
break;
}
case 4:
{
if (client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
if (npcRequest.Input != "")
{
string lookingFor = npcRequest.Input.Replace(" ", "~");
var member = client.Guild.Members.Values.FirstOrDefault((p) => p.Name == lookingFor);
if (member == null)
{
dialog.Text("There is no such member in your guild.");
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
return;
}
else
{
if (member.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
{
dialog.Text("You cannot promote this member anymore.");
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
return;
}
else
{
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);
member.Client.Entity.GuildBattlePower = member.Guild.GetSharedBattlepower(member.Rank);
}
client.Guild.DeputyLeaderCount++;
}
}
}
else
{
dialog.Text("Please input the name of the person you want to Deputilize.");
dialog.Option("Ah, Ok.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You are not the guild leader of the current guild you are in.");
dialog.Option("Ah, Ok.", 255);
dialog.Send();
}
break;
}
case 1:
{
if (client.Guild == null && client.Entity.Level >= 90 && client.Entity.Money >= 500000)
{
dialog.Text("Name your guild. The name must have less than 16 characters of any type.");
dialog.Input("Here:", 2, 16);
dialog.Option("Ah, nevermind.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't meet the requierments.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
break;
}
case 2:
{
if (client.Guild == null && client.Entity.Level >= 90 && client.Entity.ConquerPoints >= 1000000)
{
if (npcRequest.Input != "" && npcRequest.Input.Length > 3 && npcRequest.Input.Length < 16)
{
if (!Guild.CheckNameExist(npcRequest.Input))
{
client.Entity.ConquerPoints -= 1000000;
Guild guild = new Guild(client.Entity.Name);
guild.ID = Guild.GuildCounter.Next;
guild.SilverFund = 1000000;
client.AsMember = new Conquer_Online_Server.Game.ConquerStructures.Society.Guild.Member(guild.ID)
{
SilverDonation = 1000000,
ID = client.Entity.UID,
Level = client.Entity.Level,
Name = client.Entity.Name,
Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader,
};
if (client.NobilityInformation != null)
{
client.AsMember.Gender = client.NobilityInformation.Gender;
client.AsMember.NobilityRank = client.NobilityInformation.Rank;
}
client.Entity.GuildID = (ushort)guild.ID;
client.Entity.GuildRank = (ushort)Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader;
guild.Leader = client.AsMember;
client.Guild = guild;
guild.Create(npcRequest.Input);
guild.Name = npcRequest.Input;
guild.MemberCount++;
guild.SendGuild(client);
guild.SendName(client);
Database.GuildArsenalTable.Insert(guild.ID);
client.Screen.FullWipe();
client.Screen.Reload(null);
}
else
{
dialog.Text("There is a Guild Already with this Name i'm sorry.");
dialog.Option("Choose another Name", 1);
dialog.Option("Ok Sorry.", 255);
dialog.Send();
}
}
}
break;
}
}
break;
}
#endregion






