summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorFate <fate-tmw@googlemail.com>2009-05-30 21:34:54 +0000
committerFate <fate-tmw@googlemail.com>2009-05-30 21:34:54 +0000
commit2292fea4a621f235b5e576d37b95d59cbf6b8ab4 (patch)
tree7c432e1e906ba75f9b9e9aae15b7023649498e1e /conf
parent8b70df06b9454fe76765dd3044b378d4b3002002 (diff)
downloadclassic-serverdata-2292fea4a621f235b5e576d37b95d59cbf6b8ab4.tar.gz
classic-serverdata-2292fea4a621f235b5e576d37b95d59cbf6b8ab4.tar.bz2
classic-serverdata-2292fea4a621f235b5e576d37b95d59cbf6b8ab4.tar.xz
classic-serverdata-2292fea4a621f235b5e576d37b95d59cbf6b8ab4.zip
Restricted rain spell further to avoid performance issues with newer clients
Diffstat (limited to 'conf')
-rw-r--r--conf/magic.conf.template15
1 files changed, 10 insertions, 5 deletions
diff --git a/conf/magic.conf.template b/conf/magic.conf.template
index fd04a449..0f832181 100644
--- a/conf/magic.conf.template
+++ b/conf/magic.conf.template
@@ -44,7 +44,7 @@ CONST SFX_BARRIER = 10
CONST SFX_UNBARRIER = 10
CONST SFX_HEAL = 3
-CONST MAX_RAIN_SPELL_RADIUS = 20
+CONST MAX_RAIN_SPELL_RADIUS = 15
CONST MAGIC_FLAGS = "MAGIC_FLAGS"
CONST MFLAG_MADE_CONC_POTION = 16384
@@ -716,8 +716,13 @@ LOCAL SPELL rain : "#N13" =
(REQUIRE skill(caster, school) > 3 OR COMPONENTS ["BottleOfWater"]))
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
+ FOREACH SPELL s IN rbox(location(caster), MAX_RAIN_SPELL_RADIUS + 1) DO
+ IF (s <> self_invocation) && (name_of(s) = "rain")
+ THEN (message (caster, "A nearby raincloud absorbs your magic.");
+ ABORT;)
+
CALL gain_xp(1);
- range = min(MAX_RAIN_SPELL_RADIUS, 3 + min(spellpower, 400) / 30);
+ range = min(MAX_RAIN_SPELL_RADIUS, 3 + min(spellpower, 200) / 30);
area = rbox(location(caster), range);
IF (is_in(location(npc("#DruidTree0#_M")), area)
|| is_in(location(npc("#DruidTree1#_M")), area))
@@ -725,15 +730,15 @@ LOCAL SPELL rain : "#N13" =
set @flag, 1;
callfunc "QuestTreeTrigger";
};
- FOR i = 0 TO spellpower DO (
- FOR j = 0 TO min(spellpower, 500) / 100 DO (
+ FOR i = 0 TO (spellpower / 3) DO (
+ FOR j = 0 TO min(spellpower / 2, 200) / 100 DO (
location = random_location(area);
sfx(location, SFX_RAIN, 0);
FOREACH TARGET target IN rbox(location, 1) DO
IF element(target) = ELT_FIRE
THEN injure(caster, target, 2 + random(5 + spellpower / 15), 0);
)
- WAIT 300 - min(spellpower, 200) + random(100);
+ WAIT 400 + random(100);
);
PROCEDURE shear-drop(target, target2, item, prob) =