I checked the source again and I'm 111% sure it's behaving exactly as intended - cumulative bonuses and never on str. If I understand it correctly, however, and comparing it with the Weapons of Occidental Mages, the catch is that the "bonus" should be able to be negative to, so if you get +30 you're *really* very lucky. The version of the script attached does just this. On Mon, Mar 22, 2004 at 03:10:02PM +0100, Palfy Tamas wrote: > > > One is Ring of Occidental Mages. > > > Applying-unapplying several times causes it to go cursed. But that's not > > > the problem. The problem is that whenever you do this with it, the ring > > > get a random +1 Int, Con or Dex bonus! And you can do it multiple time, by > > > uncursing the Ring. Not even it's item power changes. > > > > I think this is the intended behavior. Perhaps it is unbalanced > > that these bonuses are cumulative... dunno. But it is > > definitely the way it was designed to behave. > > Of course it is, except that you can do it several times. A random +1 > dex/con/int is ok, but merely using uncurse scrolls/praying you can get 30 > in all the three stats. By the way, a player checked the source and said > it should also give randmly STR as well, but whenever it should give STR > it gives DEX, and well it was intended to do such thing only once. I don't > understand why it's not obvious that this way this item is way too > powerfull. []s, |alo +---- -- Those who trade freedom for security lose both and deserve neither. -- http://www.laranja.org/ mailto: lalo at laranja.org pgp key: http://www.laranja.org/pessoal/pgp GNU: never give up freedom http://www.gnu.org/ -------------- next part -------------- import CFPython import sys import random me = CFPython.WhoAmI() ac = CFPython.WhoIsActivator() r = random.random() if (CFPython.IsApplied(me)): if (r <= 0.01): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetDexterity(me, CFPython.GetDexterity(me)+1) elif (r <= 0.02): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetIntelligence(me, CFPython.GetIntelligence(me)+1) elif (r <= 0.03): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetConstitution(me, CFPython.GetConstitution(me)+1) elif (r >= 0.99): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetDexterity(me, CFPython.GetDexterity(me)-1) elif (r >= 0.98): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetIntelligence(me, CFPython.GetIntelligence(me)-1) elif (r >= 0.97): CFPython.SetIdentified(me,0) CFPython.SetCursed(me, 1) CFPython.SetConstitution(me, CFPython.GetConstitution(me)-1) -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel