RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

How to change spellcasting to be more like pre-AoS (= "smooth")

Ilutzio

Sorceror
How to change spellcasting to be more like pre-AoS (= "smooth")

Heads up everyone! This method only works if you use RunUO 1.0, for 2.0, check out the revised version: http://www.runuo.com/forums/showthread.php?t=70078

Smoothness in five easy steps
´ ´ ´ ´ ´ ´ ´ ´ ´ ´ ´

I'll just get right down to it, shall i?
First of all you need to disable AoS. This will give you spelltimings, damage-levels etc. like they were in LBR.

Step 1
Go to: scripts\misc\aos.cs
And find line 12; wich looks like this:
Code:
		private const bool Enabled = true;

Change it to:
Code:
		private const bool Enabled = false;

Next you'll need to activate damage-delay on spells, (namely: magic arrow, harm?, fireball, flamestrike, explosion and mindblast), go to:

Step 2
scripts\spells\base\spell.cs and find line 37; wich looks like this:
Code:
		public virtual bool DelayedDamage{ get{ return false; } }

Change to:
Code:
		publc virtual bool DelayedDamage{ get{ return true; } }

What this does: When you cast Explosion (for example) and target the spell, the damage will not be instantaniously done on the target, there is a delay between targeting the spell and when damage is done.
This is a very important aspect of mage PvP.


Step 3
Line 28: A value of 0.6 works good here, thanks a bundle to Twice for giving me the heads up on this, i had made the change when i was testing, but i forgot to mention the value in this FAQ.

Step 4
Line 29: The delay between casting a spell and when the character that casted it performs the "cast spell"-animation. A value of 1.1 usually work good and looks smooth, it can look messy when you mount an Ethereal thou, and if that is a problem then raise it to 1.9 or more.


By doing the above changes you're getting closer, but you still get the "You have not yet recovered from casting a spell."-message if you try to cast directly after your last spell.
To make spellcasting more smooth (and make mages powerfull as hell, mind you) you need to "remove" (or rather - nullify) the whole FCR "concept", this might sound tricky (and it is) but the shortcut is not:


Step 5
Starting at line 558 in Spell.cs you will see this code:
Code:
		public virtual int CastRecoveryBase{ get{ return [COLOR="Red"]1[/COLOR]; } }//<line 558
		public virtual int CastRecoveryCircleScalar{ get{ return [COLOR="Red"]0[/COLOR]; } }
		public virtual int CastRecoveryFastScalar{ get{ return [COLOR="Red"]1[/COLOR]; } }
		public virtual int CastRecoveryPerSecond{ get{ return [COLOR="Red"]3[/COLOR]; } }
		public virtual int CastRecoveryMinimum{ get{ return [COLOR="Red"]0[/COLOR]; } }
The values/numbers will differ in your file thou, change 'em to match mine.

(Note: The "You have not yet recovered from casting a spell."-message will still come up, but only, and i meen only, once in awhile when/if mages try to spam quick-casted spells, like Lightning.)


Done!(but...)
I realize this guide is far from complete, and it may even be inaccurate in some things, but i hope this "decent" guide atleast is better then none at all. :)


Special thanks to:
PappaSmurf for helping with testing of the method.
Twice for reminding about the value on Line 28.
Jeoku for being the mail pigeon. ;)



Karma, comments, mails, tips and PMs are all welcome!
 
Top