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!

Druidic Spells Final-all 16 spells - updated 6th Jan 04

Status
Not open for further replies.

Voran

Wanderer
Akrondar:
Add the scrolls, and drop them on the book - or use [allspells and target the book

Dreamerwolf:
What do you mean?

All:
I'll be trying to add Sacred grove later today.
 

akrondar

Wanderer
ou.. yeah voran..thx, i didn´t explain too good.. i added the scrolls.. and if i put the cursor on the book.. it tells me "15 spells".. they are included..but i can´t see them..
i tried to use [cast the spell.. but appears me a message "the spell has been disabled".., and i checked my initializer.cs and it looks fine.. i think..
what could it be?
 

akrondar

Wanderer
here it goes :D ..
[code:1]
Register( 208, typeof( Chivalry.RemoveCurseSpell ) );
Register( 209, typeof( Chivalry.SacredJourneySpell ) );

// Druid Spells
Register( 301, typeof( Druid.ShieldOfEarthSpell ) );
Register( 302, typeof( Druid.HollowReedSpell ) );
Register( 303, typeof( Druid.PackOfBeastSpell ) );
Register( 304, typeof( Druid.SpringOfLifeSpell ) );
Register( 305, typeof( Druid.GraspingRootsSpell ) );
Register( 306, typeof( Druid.BlendWithForestSpell ) );
Register( 307, typeof( Druid.SwarmOfInsectsSpell ) );
Register( 308, typeof( Druid.VolcanicEruptionSpell ) );
Register( 309, typeof( Druid.TreefellowSpell ) );
Register( 310, typeof( Druid.MushroomCircleSpell ) );
//Register( 311, typeof( Druid.EnchantedGroveSpell ) );
Register( 312, typeof( Druid.LureStoneSpell ) );
Register( 313, typeof( Druid.NaturesPassageSpell ) );
Register( 314, typeof( Druid.MushroomGatewaySpell ) );
Register( 315, typeof( Druid.RestorativeSoilSpell ) );
Register( 316, typeof( Druid.FireflySpell ) );

// Cardinal
//Register( 340, typeof( Ancient.FireworksSpell ) );
//Register( 341, typeof( Ancient.GlimmerSpell ) );
[/code:1]
XD XD XD
 

Voran

Wanderer
Ah!
Okay, you'e not using AOS, are you?
You need to put the druid spells outside the {} surrounding the AOS spells.
 

Voran

Wanderer
*clicks fingers*
Spell registry!
[code:1]using System;

namespace Server.Spells
{
public class SpellRegistry
{
private static Type[] m_Types = new Type[500];
private static int m_Count;

public static Type[] Types
{
get
{
m_Count = -1;
return m_Types;
}
}

public static int Count
{
get
{
if ( m_Count == -1 )
{
m_Count = 0;

for ( int i = 0; i < 64; ++i )
{
if ( m_Types != null )
++m_Count;
}
}

return m_Count;
}
}

public static void Register( int spellID, Type type )
{
if ( spellID < 0 || spellID >= m_Types.Length )
return;

if ( m_Types[spellID] == null )
++m_Count;

m_Types[spellID] = type;
}

private static object[] m_Params = new object[2];

public static Spell NewSpell( int spellID, Mobile caster, Item scroll )
{
if ( spellID < 0 || spellID >= m_Types.Length )
return null;

Type t = m_Types[spellID];

if ( t == null )
return null;

m_Params[0] = caster;
m_Params[1] = scroll;

return (Spell)Activator.CreateInstance( t, m_Params );
}

private static string[] m_CircleNames = new string[]
{
"First",
"Second",
"Third",
"Fourth",
"Fifth",
"Sixth",
"Seventh",
"Eighth",
"Necromancy",
"Chivalry"
};

public static Spell NewSpell( string name, Mobile caster, Item scroll )
{
for ( int i = 0; i < m_CircleNames.Length; ++i )
{
Type t = ScriptCompiler.FindTypeByFullName( String.Format( "Server.Spells.{0}.{1}", m_CircleNames, name ) );

if ( t != null )
{
m_Params[0] = caster;
m_Params[1] = scroll;

try
{
return (Spell)Activator.CreateInstance( t, m_Params );
}
catch
{
}
}
}

return null;
}
}
}
[/code:1]
use that - your one stops before 300.
 

akrondar

Wanderer
ouh.. you are right!!!
i got it in 300.. that must be the problem.. i´m in my girlfriend´s home.. so when i get home i´ll try it..
thx a lot Voran.. your scripts rox!
 
S

sp000n

Guest
You check the RunUO boards while at your girlfriend's place!? That relationship is doomed ;)
 

Voran

Wanderer
That would mean you don't have enough skill.
The druid spells use animal lore for their main skill, amnd Animal Taming for their secondary
 

mikemaz

Wanderer
ty

ah ok wicked that would be the problem the i wasnt sure what skills i need thanks man ya scripts are the the best
 

dreamerwolf

Wanderer
Give me some idea.

darkangel.cs
[code:1]
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Targeting;

namespace Server.Mobiles
{
[CorpseName( "a dark angel corpse" )]
public class DarkAngel : BaseCreature
{
[Constructable]
public DarkAngel () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "Daemon" );
Body = 9;
BaseSoundID = 357;
Hue = 1;

SetStr( 450, 550 );
SetDex( 200, 300 );
SetInt( 700, 800 );

SetHits( 400, 500 );

SetDamage( 20, 30 );

SetDamageType( ResistanceType.Physical, 100 );

SetResistance( ResistanceType.Physical, 45, 60 );
SetResistance( ResistanceType.Fire, 50, 60 );
SetResistance( ResistanceType.Cold, 30, 40 );
SetResistance( ResistanceType.Poison, 20, 30 );
SetResistance( ResistanceType.Energy, 30, 40 );

SetSkill( SkillName.EvalInt, 70.1, 80.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.Wrestling, 60.1, 80.0 );

Fame = 15000;
Karma = -15000;

VirtualArmor = 60;
ControlSlots = 5;

PackGold( 1000, 4000 );
switch ( Utility.Random( 15 ) )
{
case 0: PackItem( new BlendWithForestScroll() ); break;
case 1: PackItem( new FireflyScroll() ); break;
case 2: PackItem( new GraspingRootsScroll() ); break;
case 3: PackItem( new HollowReedScroll() ); break;
case 4: PackItem( new LureStoneScroll() ); break;
case 5: PackItem( new MushroomCircleScroll() ); break;
case 6: PackItem( new MushroomGatewayScroll() ); break;
case 7: PackItem( new NaturesPassageScroll() ); break;
case 8: PackItem( new PackOfBeastScroll() ); break;
case 9: PackItem( new SheildOfEarthScroll() ); break;
case 10: PackItem( new SpringOfLifeScroll() ); break;
case 11: PackItem( new SwarmOfInsectsScroll() ); break;
case 12: PackItem( new TreefellowScroll() ); break;
case 13: PackItem( new VolcanicEruptionScroll() ); break;
case 14: PackItem( new DruidicSpellbook() ); break;
};
PackItem( new DestroyingAngel(Utility.RandomMinMax( 1, 5 )) );
}

public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override int Meat{ get{ return 1; } }

public DarkAngel( Serial serial ) : base( serial )
{
}

public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}

public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
[/code:1]

MadTreeElemental.cs
[code:1]
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Targeting;

namespace Server.Mobiles
{
[CorpseName( "a mad tree elemental corpse" )]
public class MadTreeElemental : BaseCreature
{
[Constructable]
public MadTreeElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a mad tree elemental";
Body = 13;
Hue = 0x56;
BaseSoundID = 263;

SetStr( 200, 350 );
SetDex( 200, 250 );
SetInt( 300, 600 );

SetHits( 250, 350 );

SetDamage( 30, 40 );

SetDamageType( ResistanceType.Physical, 90 );
SetDamageType( ResistanceType.Cold, 90 );
SetDamageType( ResistanceType.Energy, 90 );

SetResistance( ResistanceType.Physical, 90, 100 );
SetResistance( ResistanceType.Fire, 0, 5 );
SetResistance( ResistanceType.Cold, 10, 20 );
SetResistance( ResistanceType.Poison, 90, 100 );
SetResistance( ResistanceType.Energy, 70, 85 );

SetSkill( SkillName.EvalInt, 80.1, 95.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 95.1, 98.0 );
SetSkill( SkillName.Tactics, 70.1, 90.0 );
SetSkill( SkillName.Wrestling, 80.1, 100.0 );

Fame = 4500;
Karma = -4500;

VirtualArmor = 70;
ControlSlots = 2;

PackGold( 300, 500 );
switch ( Utility.Random( 15 ) )
{
case 0: PackItem( new BlendWithForestScroll() ); break;
case 1: PackItem( new FireflyScroll() ); break;
case 2: PackItem( new GraspingRootsScroll() ); break;
case 3: PackItem( new HollowReedScroll() ); break;
case 4: PackItem( new LureStoneScroll() ); break;
case 5: PackItem( new MushroomCircleScroll() ); break;
case 6: PackItem( new MushroomGatewayScroll() ); break;
case 7: PackItem( new NaturesPassageScroll() ); break;
case 8: PackItem( new PackOfBeastScroll() ); break;
case 9: PackItem( new SheildOfEarthScroll() ); break;
case 10: PackItem( new SpringOfLifeScroll() ); break;
case 11: PackItem( new SwarmOfInsectsScroll() ); break;
case 12: PackItem( new TreefellowScroll() ); break;
case 13: PackItem( new VolcanicEruptionScroll() ); break;
case 14: PackItem( new DruidicSpellbook() ); break;
}
PackItem( new PetrafiedWood(Utility.RandomMinMax( 1, 5 )) );
}

public MadTreeElemental( Serial serial ) : base( serial )
{
}

public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}

public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
[/code:1]

SpringElement.cs
[code:1]
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Targeting;

namespace Server.Mobiles
{
[CorpseName( "a spring elemental corpse" )]
public class SpringElemental : BaseCreature
{
[Constructable]
public SpringElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a spring elemental";
Body = 16;
BaseSoundID = 278;

SetStr( 200, 300 );
SetDex( 66, 85 );
SetInt( 150, 175 );

SetHits( 100, 150 );

SetDamage( 10, 15 );

SetDamageType( ResistanceType.Physical, 100 );
SetDamageType( ResistanceType.Energy, 70);

SetResistance( ResistanceType.Physical, 35, 45 );
SetResistance( ResistanceType.Fire, 10, 25 );
SetResistance( ResistanceType.Cold, 10, 25 );
SetResistance( ResistanceType.Poison, 60, 70 );
SetResistance( ResistanceType.Energy, 5, 10 );

SetSkill( SkillName.EvalInt, 60.1, 75.0 );
SetSkill( SkillName.Magery, 60.1, 75.0 );
SetSkill( SkillName.MagicResist, 100.1, 115.0 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.Wrestling, 50.1, 70.0 );

Fame = 4500;
Karma = 4500;

VirtualArmor = 60;
ControlSlots = 3;
CanSwim = true;

PackGold( 100, 200 );
switch ( Utility.Random( 15 ) )
{
case 0: PackItem( new BlendWithForestScroll() ); break;
case 1: PackItem( new FireflyScroll() ); break;
case 2: PackItem( new GraspingRootsScroll() ); break;
case 3: PackItem( new HollowReedScroll() ); break;
case 4: PackItem( new LureStoneScroll() ); break;
case 5: PackItem( new MushroomCircleScroll() ); break;
case 6: PackItem( new MushroomGatewayScroll() ); break;
case 7: PackItem( new NaturesPassageScroll() ); break;
case 8: PackItem( new PackOfBeastScroll() ); break;
case 9: PackItem( new SheildOfEarthScroll() ); break;
case 10: PackItem( new SpringOfLifeScroll() ); break;
case 11: PackItem( new SwarmOfInsectsScroll() ); break;
case 12: PackItem( new TreefellowScroll() ); break;
case 13: PackItem( new VolcanicEruptionScroll() ); break;
case 14: PackItem( new DruidicSpellbook() ); break;
}
PackItem( new SpringWater(Utility.RandomMinMax( 1, 5 )) );
}

public SpringElemental( Serial serial ) : base( serial )
{
}

public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}

public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
[/code:1]
:D :D :D
 

Bronwyn

Wanderer
Help! I just started doing this last night, i have no idea how to code or script either :) I amlearning by fumbling through, comparing stuff etc. So here is the error I am getting. what do i need to do? I fixed most of my other druid problems, but cannot figure this out for the life of me

- Warning: Scripts\Spells\Druid\GroveGump.cs: CS0219: (line 25, column 39) The
ariable 'initialState' is assigned but its value is never used
- Error: Scripts\Spells\Druid\NaturesPassageSpell.cs: CS1501: (line 111, column
5) No overload for method 'TeleportPets' takes '4' arguments
- Warning: Scripts\Spells\Druid\RestorativeSoilSpell.cs: CS0168: (line 62, colu
n 17) The variable 'stonex' is declared but never used
- Warning: Scripts\Spells\Druid\RestorativeSoilSpell.cs: CS0168: (line 63, colu
n 15) The variable 'stoney' is declared but never used
- Warning: Scripts\Spells\Druid\RestorativeSoilSpell.cs: CS0168: (line 64, colu
n 15) The variable 'stonez' is declared but never used
 

wraith

Wanderer
Question about the groveGump.cs is it used yet? I mean is it for the pet bonding or no? or is it part of another spell you are working on?
 

Voran

Wanderer
it's not used, and porbably never will be now - Enchanted Grove was going to work like a campsite, but i couldn't work out instalog. it will now probably give health and mana boosts.
 

IdahoLynxx

Wanderer
First and formost I must say these ROCK! my only question is ... If i create the little spell Icons (that we drag out of the real spell books) could you add it to the gumps? I have quite a few players that use those instead of hot keys (wich i havent checked if they work either ;-) )
 

MrBots

Wanderer
First off, I'd like to say "THANKS!" for making these. Awesome addition to any server.

Now to my problem. All the spells in the book work perfectly, but none of the scrolls work. They all give me the "spell not implemented" message. I'm probably missing something inane and easy to find, but I'm new to C# and RunUO, so any help would be appreciated.
 
Status
Not open for further replies.
Top