EvilPounder420
Sorceror
Enabling Spellweaving RunUO 2.0 Final *Tutorial*
Ok, so i've noticed alot of people asking how to get spellweaving to fully work and i have not been able to find a full tutorial about it myself. So i am posting this for anyone who wants to know how to fully enable spellweaving.
=================================================================
First, you will have to download the 4 missing spellweaving spells(not included with RunUO 2.0 Final) and put them in your Spellweaving Spell folder. ( Attatched Below )
RunUO -> Scripts -> Spells -> Spellweaving
Then you will have to go back to your Spells folder and find your Initializer.cs script and uncomment the following lines:
=================================================================
Then...
In the baseweapon.cs (for immolating weapon) do this:
Around line 91
Right under this code:
Add this:
Then, around line 206
Right under this code:
Add this:
Then, around line 1508
Right under this line:
Add this:
=================================================================
Then...
In basecreature.cs (for dryad allure) do this:
Around line 275
Right under this code:
Add this:
Then, around line 1534
Right under this code:
Add this:
Then, around line 1743
Right under this code:
Add this:
Then, around line 2410
Right under this code:
Add this:
Then, around line 4247
Right under this code:
Add this:
=================================================================
Then reboot your server, and enjoy. =]
I hope this helps.
Ok, so i've noticed alot of people asking how to get spellweaving to fully work and i have not been able to find a full tutorial about it myself. So i am posting this for anyone who wants to know how to fully enable spellweaving.
=================================================================
First, you will have to download the 4 missing spellweaving spells(not included with RunUO 2.0 Final) and put them in your Spellweaving Spell folder. ( Attatched Below )
RunUO -> Scripts -> Spells -> Spellweaving
Then you will have to go back to your Spells folder and find your Initializer.cs script and uncomment the following lines:
Code:
if( Core.ML )
{
Register( 600, typeof( Spellweaving.ArcaneCircleSpell ) );
Register( 601, typeof( Spellweaving.GiftOfRenewalSpell ) );
[COLOR="Red"]//Register( 602, typeof( Spellweaving.ImmolatingWeaponSpell ) );[/COLOR]
Register( 603, typeof( Spellweaving.AttuneWeaponSpell ) );
Register( 604, typeof( Spellweaving.ThunderstormSpell ) );
Register( 605, typeof( Spellweaving.NatureFurySpell ) );
Register( 606, typeof( Spellweaving.SummonFeySpell ) );
Register( 607, typeof( Spellweaving.SummonFiendSpell ) );
Register( 608, typeof( Spellweaving.ReaperFormSpell ) );
[COLOR="Red"]//Register( 609, typeof( Spellweaving.WildfireSpell ) );[/COLOR]
Register( 610, typeof( Spellweaving.EssenceOfWindSpell ) );
[COLOR="Red"]//Register( 611, typeof( Spellweaving.DryadAllureSpell ) );[/COLOR]
Register( 612, typeof( Spellweaving.EtherealVoyageSpell ) );
Register( 613, typeof( Spellweaving.WordOfDeathSpell ) );
Register( 614, typeof( Spellweaving.GiftOfLifeSpell ) );
[COLOR="Red"]//Register( 615, typeof( Spellweaving.ArcaneEmpowermentSpell ) );[/COLOR]
}
=================================================================
Then...
In the baseweapon.cs (for immolating weapon) do this:
Around line 91
Right under this code:
Code:
private bool m_Cursed; // Is this weapon cursed via Curse Weapon necromancer spell? Temporary; not serialized.
private bool m_Consecrated; // Is this weapon blessed via Consecrate Weapon paladin ability? Temporary; not serialized.
Add this:
Code:
#region Mondain's Legacy
private bool m_Immolating; // Is this weapon blessed via Immolating Weapon arcanists spell? Temporary; not serialized.
#endregion
Then, around line 206
Right under this code:
Code:
[CommandProperty( AccessLevel.GameMaster )]
public bool Consecrated
{
get{ return m_Consecrated; }
set{ m_Consecrated = value; }
}
Add this:
Code:
#region Mondain's Legacy
[CommandProperty( AccessLevel.GameMaster )]
public bool Immolating
{
get{ return m_Immolating; }
set{ m_Immolating = value; }
}
#endregion
Then, around line 1508
Right under this line:
Code:
else if ( Core.AOS && damage == 0 ) // parried
{
if ( a != null && a.Validate( attacker ) /*&& a.CheckMana( attacker, true )*/ ) // Parried special moves have no mana cost
{
a = null;
WeaponAbility.ClearCurrentAbility( attacker );
attacker.SendLocalizedMessage( 1061140 ); // Your attack was parried!
}
}
Add this:
Code:
#region Mondain's Legacy
if ( m_Immolating )
{
int d = ImmolatingWeaponSpell.GetDamage( this );
d = AOS.Damage( defender, attacker, d, 0, 100, 0, 0, 0 );
AttuneWeaponSpell.TryAbsorb( defender, ref d );
if ( d > 0 )
defender.Damage( d );
}
#endregion
=================================================================
Then...
In basecreature.cs (for dryad allure) do this:
Around line 275
Right under this code:
Code:
public virtual Faction FactionAllegiance{ get{ return null; } }
public virtual int FactionSilverWorth{ get{ return 30; } }
#region Bonding
public const bool BondingEnabled = true;
Add this:
Code:
public virtual bool IsBondable{ get{ return ( BondingEnabled && !Summoned && !Allured ); } }
Then, around line 1534
Right under this code:
Code:
// Version 14
writer.Write( (bool)m_RemoveIfUntamed );
writer.Write( (int)m_RemoveStep );
Add this:
Code:
#region Mondain's Legacy version 16
writer.Write( (bool) m_Allured );
#endregion
Then, around line 1743
Right under this code:
Code:
if ( version >= 14 )
{
m_RemoveIfUntamed = reader.ReadBool();
m_RemoveStep = reader.ReadInt();
}
Add this:
Code:
#region Mondain's Legacy version 15
if ( version >= 16 )
m_Allured = reader.ReadBool();
#endregion
Then, around line 2410
Right under this code:
Code:
[CommandProperty( AccessLevel.GameMaster )]
public OrderType ControlOrder
{
get
{
return m_ControlOrder;
}
set
{
m_ControlOrder = value;
Add this:
Code:
#region Mondain's Legacy
if ( m_Allured )
{
if ( m_ControlOrder == OrderType.Release )
Say( 502003 ); // Sorry, but no.
else if ( m_ControlOrder != OrderType.None )
Say( 1079120 ); // Very well.
}
#endregion
Then, around line 4247
Right under this code:
Code:
if ( rights.Count > 0 )
{
rights[0].m_Damage = (int)(rights[0].m_Damage * 1.25); //This would be the first valid person attacking it. Gets a 25% bonus. Per 1/19/07 Five on Friday
if ( rights.Count > 1 )
rights.Sort(); //Sort by damage
int topDamage = rights[0].m_Damage;
int minDamage;
if ( hitsMax >= 3000 )
minDamage = topDamage / 16;
else if ( hitsMax >= 1000 )
minDamage = topDamage / 8;
else if ( hitsMax >= 200 )
minDamage = topDamage / 4;
else
minDamage = topDamage / 2;
for ( int i = 0; i < rights.Count; ++i )
{
DamageStore ds = rights[i];
ds.m_HasRight = ( ds.m_Damage >= minDamage );
}
}
return rights;
}
Add this:
Code:
#region Mondain's Legacy
private bool m_Allured;
[CommandProperty( AccessLevel.GameMaster )]
public bool Allured
{
get{ return m_Allured; }
set{ m_Allured = value; }
}
public virtual void OnRelease( Mobile from )
{
if ( m_Allured )
Timer.DelayCall( TimeSpan.FromSeconds( 2 ), new TimerCallback( Delete ) );
}
public override void OnItemLifted( Mobile from, Item item )
{
base.OnItemLifted( from, item );
InvalidateProperties();
}
#endregion
=================================================================
Then reboot your server, and enjoy. =]
I hope this helps.