Anton Oussik wrote:
On 8/8/05, Mark Wedel <[EMAIL PROTECTED]> 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.



_______________________________________________
crossfire mailing list
[email protected]
http://mailman.metalforge.org/mailman/listinfo/crossfire

Reply via email to