public static void CreateGuild(MartialClient c, InPacket p) { if(c.getAccount().activeCharacter == null) { Logger.LogCheat(Logger.HackTypes.NullActive, c, "Hooked guild.Refresh with null of activeCharacter"); c.Close(); return; } Character chr = c.getAccount().activeCharacter; Guild guild = chr.getGuild(); byte managementType = p.ReadByte(); // 0 - disband; 1 - create; 2 - donate; 3 - hat byte managementArg = p.ReadByte(); // 1 - bang, 2 - mun, 3 - pa, 4 - nohing, 5 - dan, 6 - gak, 7 - gyo, 8 - gung string managementName = MiscFunctions.obscureString(p.ReadString(18)); switch(managementType) { case 0: { if(guild == null) { Logger.LogCheat(Logger.HackTypes.Guild, c, "Hooked guild disband with char that ain't in guild"); c.Close(); return; } guild.Delete(); WMap.Instance.removeGuild(guild); foreach(GuildMember i in guild.guildMembers) { Character tmp = i.getOnlineCharacter(); tmp.getAccount().mClient.WriteRawPacket(GuildPackets.quitGuildForInternal(tmp)); WMap.Instance.getGrid(tmp.getMap()).sendTo3x3Area(tmp, tmp.getArea(), GuildPackets.quitGuildForExternals(tmp)); tmp.setGuild(null); i.setOnlineCharacter(null); } return; } case 1: { if(guild != null) { Logger.LogCheat(Logger.HackTypes.Guild, c, "Hooked guild create with char that is in guild"); c.Close(); return; } Guild newGuild = new Guild(managementArg, managementName); c.WriteRawPacket(GuildPackets.createGuildResponse(chr, managementType, managementArg, managementName)); WMap.Instance.getGrid(chr.getMap()).sendTo3x3Area(chr, chr.getArea(), GuildPackets.extCharGuild(chr)); return; } case 2: { if(guild == null) { Logger.LogCheat(Logger.HackTypes.Guild, c, "Hooked guild donate with char that ain't in guild"); c.Close(); return; } return; } case 3: { if(guild == null) { Logger.LogCheat(Logger.HackTypes.Guild, c, "Hooked guild hat change with char that ain't in guild"); c.Close(); return; } guild.guildHat = managementArg; WMap.Instance.getGrid(chr.getMap()).sendTo3x3Area(chr, chr.getArea(), GuildPackets.extCharGuild(chr)); c.WriteRawPacket(GuildPackets.refreshGuild(chr)); return; } } return; }
public void removeGuild(Guild guild) { guildList.Remove(guild); }
public void addGuild(Guild guild) { guildList.Add(guild); }
public void setGuild(Guild guild) { this.guild = guild; }