Anton Oussik wrote: > On 8/8/05, Mark Wedel < mwedel at sonic.net > wrote: > > >> I suppose it could be a malicous player casting hundreds of runes on some >> space which some player sets off. but otherwise, if anyone has a clue, let me know. > > > Instead of processing each effect individually, would a better > approach not be to have a single spell effect per tile and add to it? > > For example instead of having a stack of fireballs from meteor swarm > or banishment on one square, have one that has "Time To Live" foo. > Damage dealt can then be deduced from how long it has to live (a spell > that has longer to live should cause more damage as it is more > powerful?). It can then decay in strength with time, and if any more > of the same spell is cast on it, the new spell can simply increase the > time to live, and therefore strength and damage dealt. > > Other spread, damage, and decay-related parameters could then be added > to make this more customisable. If needed it could possibly be made to > decay along some decay curve, but that would be more CPU-intensive. > > I know this approach is very different from what is being done now and > will proably require substantial changes, but it should prevent single > players from being able to grind the server to a halt, as after the > initial explosion it will not matter if you have one fireball going > off or a thousand. It becomes very complicated. Merging spells of different damage types is not likely to work, or if you try to do it, result in abuses that are easily exploited (if you take whatever is higher, you now have just let players effectively get more potent spells. If you take whatever is lower, players could now neutralize spells) In addition, there are lots of reasons these objects may not be able to merge - different owners would be the most obvious, but different ranges (small vs large fireball), different durations, levels, offsets (if two explode one space from each other, do you try to merge those effects)? If the problem is player abuse, all that is really happening is you're making it a bit more difficult for the players. A more sensible, and much easier approach, is to just track the number of spell objects on a space. If it goes above some count, basically just don't insert anymore. One could argue there can only be so much going on in one space anyways. And a number could probably be found that is high enough that it is unlikely to ever be reached except by people trying to abuse the system, but still low enough the performance is at least somewhat OK.