Most flooders of that sort are bots, so talking with the person is probably not possible.

Setting a temporary +m or even setting the limit (+l) of the channel to total users + 3 after a few seconds whenever someone joins would be helpful.

The moderated option (+m) works if you have a way to determine whether a person joining is a spammer/bot and if the bots are posting messages in your channel. You may be able to do this based on nick or ident as those are often very random and normal users normally don't have that kind of nick or ident. Or you can base it on the number of joins within a short time. There may be other ways as well depending on how they are flooding/spamming you. The usefulness of +m is that no matter how many join the channel, as long as the channel is +m, only voiced users (and higher) can talk. As long as you don't mind voicing your normal users or you don't mind silencing your normal users for a period of time, then it's a good way to prevent spammers from posting spam messages to the channel. +m is not helpful if the bots aren't posting messages to the channel, but are sending private messages to users or just joining/parting.

The limit option (+l) works if you are hit by a large number of joins in a short time from flooders and not from normal joins. If you normally don't have that many people join within a 5 second or 10 second period of time, you can set the limit 5-10 seconds after a person joins the channel. Here's an example of what that would do...

Let's say someone floods you with 20 bots joining all at once. If you set the limit to +3 over the total current users after 5-10 seconds of a person joining, then at most, only 3 bot nicks could join. The rest would be blocked. This does not prevent those users from posting spam to your channel, but if they are just joining and parting, then this works well. Of course, if they learn what you're doing (that doesn't usually happen because there is usually not a real person monitoring what the bots are doing), then they can make only a couple bots join and part over and over and +l won't help with that kind of flood.

Another option is to use +i (invite only) if there are a large number of joins/parts in a short time. That prevents anyone from joining without being invited as long as it's active. This is useful in that if a bot is joining and parting over and over, making +l useless, then this would stop the bot from rejoining even if it's the only nick doing the join/part flooding.

And, of course, temp bans are useful. Set them for a few minutes and you'll avoid filling up your ban list and most bots aren't going to come back very soon after being banned for even a few minutes. They might later in the day or the next day, but this would help to hold them in check. The unfortunate effect of using bans though, is that if you have a large number of bots joining the channel, your bans are going to flood the channel just as much as the joins.

What is comes down to is that you need to first determine exactly what they are doing to flood/spam you. That lets you decide what kind of measures you can take that will be useful and which ones won't help. Then, if possible, determine if it's just a lot of bots or if it's a person doing it. Bots are typically easier to deal with as they don't change based on your actions. A person can adapt based on what you do to them and that's harder to handle if they can change their host. After that, you can set up a script or script that will help to prevent the spamming or flooding. Finally, you need to tweak it to cut down on those that manage to get through.