diff options
author | Fate <fate-tmw@googlemail.com> | 2009-05-30 21:34:54 +0000 |
---|---|---|
committer | Fate <fate-tmw@googlemail.com> | 2009-05-30 21:34:54 +0000 |
commit | 2292fea4a621f235b5e576d37b95d59cbf6b8ab4 (patch) | |
tree | 7c432e1e906ba75f9b9e9aae15b7023649498e1e | |
parent | 8b70df06b9454fe76765dd3044b378d4b3002002 (diff) | |
download | classic-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
-rw-r--r-- | conf/magic.conf.template | 15 |
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) = |