Fix for 3D Client
Okey, the bug really in 3D and not in script - client can't handle more than 30-35 pages with such massive info.
That why I convert all script description to html with scroll bars.
Here, my AncientSpellBookGump.cs
[code:1]
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Network;
using Server.Spells;
using Server.Spells.Linear;
using Server.Spells.First;
using Server.Spells.Second;
using Server.Spells.Third;
using Server.Spells.Fourth;
using Server.Spells.Fifth;
using Server.Spells.Sixth;
using Server.Spells.Seventh;
using Server.Spells.Eighth;
using Server.Prompts;
namespace Server.Gumps
{
public class AncientSpellbookGump : Gump
{
private AncientSpellbook m_Book;
int gth = 0x903;
public static bool HasSpell( Mobile from, int spellID )
{
Spellbook book = Spellbook.Find( from, spellID );
return ( book != null && book.HasSpell( spellID ) );
}
public AncientSpellbookGump( Mobile from, AncientSpellbook book ) : base( 179, 200 )
{
int sbtn = 0x93A;
int dby = 40;
m_Book = book;
AddPage( 0 );
AddImage( 100, 10, 0x89B, 0 );
AddPage( 1 );
AddLabel( 170, 17, gth, "Linear" );
AddButton( 396, 14, 0x89E, 0x89E, 17, GumpButtonType.Page, 2 );
if (HasSpell( from, 340) )
{
AddLabel( 145, dby, gth, "Fireworks" );
AddButton( 125, dby + 3, sbtn, sbtn, 1, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 341) )
{
AddLabel( 145, dby, gth, "Glimmer" );
AddButton( 125, dby + 3, sbtn, sbtn, 2, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 342) )
{
AddLabel( 145, dby, gth, "Awaken" );
AddButton( 125, dby + 3, sbtn, sbtn, 3, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 343) )
{
AddLabel( 145, dby, gth, "Thunder" );
AddButton( 125, dby + 3, sbtn, sbtn, 4, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 344) )
{
AddLabel( 145, dby, gth, "Weather" );
AddButton( 125, dby + 3, sbtn, sbtn, 5, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 345) )
{
AddLabel( 145, dby, gth, "Ignite" );
AddButton( 125, dby + 3, sbtn, sbtn, 6, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 346) )
{
AddLabel( 145, dby, gth, "Douse" );
AddButton( 125, dby + 3, sbtn, sbtn, 7, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 347) )
{
AddLabel( 145, dby, gth, "Help" );
AddButton( 125, dby + 3, sbtn, sbtn, 8, GumpButtonType.Reply, 1 );
}
dby = 40;
AddLabel( 291, 17, gth, "First Circle" );
if (HasSpell( from, 348) )
{
AddLabel( 315, dby, gth, "Locate" );
AddButton( 295, dby + 3, sbtn, sbtn, 9, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 349) )
{
AddLabel( 315, dby, gth, "Awaken All" );
AddButton( 295, dby + 3, sbtn, sbtn, 10, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 350) )
{
AddLabel( 315, dby, gth, "Detect Trap" );
AddButton( 295, dby + 3, sbtn, sbtn, 11, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 351) )
{
AddLabel( 315, dby, gth, "Great Douse" );
AddButton( 295, dby + 3, sbtn, sbtn, 12, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 352) )
{
AddLabel( 315, dby, gth, "Great Ignite" );
AddButton( 295, dby + 3, sbtn, sbtn, 13, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
AddPage( 2 );
AddLabel( 170, 17, gth, "Second Circle" );
dby = 40;
AddButton( 396, 14, 0x89E, 0x89E, 17, GumpButtonType.Page, 3 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 1 );
if (HasSpell( from, 353) )
{
AddLabel( 145, dby, gth, "Enchant" );
AddButton( 125, dby + 3, sbtn, sbtn, 21, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 354) )
{
AddLabel( 145, dby, gth, "False Coin" );
AddButton( 125, dby + 3, sbtn, sbtn, 22, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 355) )
{
AddLabel( 145, dby, gth, "Great Light" );
AddButton( 125, dby + 3, sbtn, sbtn, 23, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 356) )
{
AddLabel( 145, dby, gth, "Destroy Trap" );
AddButton( 125, dby + 3, sbtn, sbtn, 24, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
AddLabel( 291, 17, gth, "Third Circle" );
dby = 40;
if (HasSpell( from, 357) )
{
AddLabel( 315, dby, gth, "Sleep" );
AddButton( 295, dby + 3, sbtn, sbtn,29, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 358) )
{
AddLabel( 315, dby, gth, "Swarm" );
AddButton( 295, dby + 3, sbtn, sbtn, 30, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 359) )
{
AddLabel( 315, dby, gth, "Peer" );
AddButton( 295, dby + 3, sbtn, sbtn, 31, GumpButtonType.Reply, 1 );
}
AddPage( 3 );
AddLabel( 170, 17, gth, "Fouth Circle" );
dby = 40;
AddButton( 396, 14, 0x89E, 0x89E, 17, GumpButtonType.Page, 4 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 2 );
if (HasSpell( from, 360) )
{
AddLabel( 145, dby, gth, "Seance" );
AddButton( 125, dby + 3, sbtn, sbtn, 41, GumpButtonType.Reply, 1 );
}
AddLabel( 291, 17, gth, "Fifth Circle" );
dby = 40;
if (HasSpell( from, 361) )
{
AddLabel( 315, dby, gth, "Charm" );
AddButton( 295, dby + 3, sbtn, sbtn,49, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 362) )
{
AddLabel( 315, dby, gth, "Dance" );
AddButton( 295, dby + 3, sbtn, sbtn, 50, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 363) )
{
AddLabel( 315, dby, gth, "Mass Sleep" );
AddButton( 295, dby + 3, sbtn, sbtn, 51, GumpButtonType.Reply, 1 );
}
AddPage( 4 );
AddLabel( 170, 17, gth, "Sixth Circle" );
dby = 40;
AddButton( 396, 14, 0x89E, 0x89E, 17, GumpButtonType.Page, 5 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 3 );
if (HasSpell( from, 364) )
{
AddLabel( 145, dby, gth, "Clone" );
AddButton( 125, dby + 3, sbtn, sbtn, 52, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 365) )
{
AddLabel( 145, dby, gth, "Cause Fear" );
AddButton( 125, dby + 3, sbtn, sbtn, 53, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 366) )
{
AddLabel( 145, dby, gth, "Fire Ring" );
AddButton( 125, dby + 3, sbtn, sbtn, 54, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 367) )
{
AddLabel( 145, dby, gth, "Magic Storm" );
AddButton( 125, dby + 3, sbtn, sbtn, 55, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 368) )
{
AddLabel( 145, dby, gth, "Tremor" );
AddButton( 125, dby + 3, sbtn, sbtn, 56, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 369) )
{
AddLabel( 145, dby, gth, "Sleep Field" );
AddButton( 125, dby + 3, sbtn, sbtn, 57, GumpButtonType.Reply, 1 );
}
AddLabel( 291, 17, gth, "Seventh Circle" );
dby = 40;
if (HasSpell( from, 370) )
{
AddLabel( 315, dby, gth, "Mass Might" );
AddButton( 295, dby + 3, sbtn, sbtn,58, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 371) )
{
AddLabel( 315, dby, gth, "Energy Mist" );
AddButton( 295, dby + 3, sbtn, sbtn, 59, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 372) )
{
AddLabel( 315, dby, gth, "Mass Charm" );
AddButton( 295, dby + 3, sbtn, sbtn, 60, GumpButtonType.Reply, 1 );
}
AddPage( 5 );
AddLabel( 170, 17, gth, "Eighth Circle" );
dby = 40;
AddButton( 396, 14, 0x89E, 0x89E, 17, GumpButtonType.Page, 6 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 4 );
if (HasSpell( from, 373) )
{
AddLabel( 145, dby, gth, "Invisibility All" );
AddButton( 125, dby + 3, sbtn, sbtn, 61, GumpButtonType.Reply, 1 );
dby = dby + 20;
}
if (HasSpell( from, 374) )
{
AddLabel( 145, dby, gth, "Death Vortex" );
AddButton( 125, dby + 3, sbtn, sbtn, 62, GumpButtonType.Reply, 1 );
}
AddPage( 6 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 7 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 5 );
AddLabel( 170, 20, gth, "Fireworks" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>0<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>1<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell creates an impressive display of multi-colored moving lights." +
"</BODY>", false, true);
AddLabel( 340, 20, gth, "Glimmer" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>0<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>3<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell creates a small light source that lasts for a short period of time." +
"</BODY>", false, true);
AddPage( 7 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 8 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 6 );
AddLabel( 170, 20, gth, "Awaken" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>0<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>5<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell awakens one sleeping or unconscious creature." +
"</BODY>", false, true);
AddLabel( 340, 20, gth, "Thunder" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>0<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>2<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell causes a single thunderclap to be heard, as if a terrible storm is imminent." +
"</BODY>", false, true);
AddPage( 8 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 9 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 7 );
AddLabel( 170, 20, gth, "Weather" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>0<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>8<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell can create a storm or cause an existing storm to stop." +
"</BODY>", false, true);
AddLabel( 340, 20, gth, "Ignite" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>0<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>6<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell generates a tiny missile of sparks that can ignite flammable material." +
"</BODY>", false, true);
AddPage( 9 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 10 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 8 );
AddLabel( 170, 20, gth, "Douse" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>0<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>6<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell extinguishes any small, non-magical fire." +
"</BODY>", false, true);
AddLabel( 340, 20, gth, "Help" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>None<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Skill: <BASEFONT COLOR=BLACK>1<BR>" +
"<BASEFONT COLOR=#7B6D20>Required Mana: <BASEFONT COLOR=BLACK>60<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell teleports the mage to a safe location." +
"</BODY>", false, true);
AddPage( 10 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 11 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 9 );
AddLabel( 170, 20, gth, "Locate" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>1<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell reveals the sextant position of the mage, even when underground." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Awaken All" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Garlic, Ginseng<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>1<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell awakens all unconscious members of the mage's party." +
"</BODY>", false, true);
AddPage( 11 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 12 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 10 );
AddLabel( 170, 20, gth, "Detect Trap" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Spider's Silk, Nightshade<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>1<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell reveals the location of all traps within sight of the mage and his party." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Great Douse" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Spider's Silk, Garlic<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>1<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is a more potent version of the Linear spell Douse. It extinguishes all dousable items within a certain area." +
"</BODY>", false, true);
AddPage( 12 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 13 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 11 );
AddLabel( 170, 20, gth, "Great Ignite" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Spider's Silk, Sulfurous Ash<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>1<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is a more potent version of the Linear spell Ignite. It will cause all flammable items within a certain area to ignite." +
"</BODY>", false, true);
AddLabel( 330, 20, gth, "Enchant" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Black Pearl, Mandrake Root<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>2<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell causes a ranged weapon to become enchanted and glow blue. Enchanted weapons will always hit their target." +
"</BODY>", false, true);
AddPage( 13 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 14 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 12 );
AddLabel( 170, 20, gth, "False Coin" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Sulfurous Ash<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>2<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>When cast upon any coin, this spell creates five duplicate coins." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Great Light" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Mandrake Root, Sulfurous Ash<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>2<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is a more potent version of the First Circle spell Nightsight, and has a substantially longer duration." +
"</BODY>", false, true);
AddPage( 14 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 15 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 13 );
AddLabel( 170, 20, gth, "Destroy Trap" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Blood Moss, Sulfurous Ash<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>2<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell destroys any one specific trap upon which it is cast." +
"</BODY>", false, true);
AddLabel( 340, 20, gth, "Sleep" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Spider's Silk, Black Pearl<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>3<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell causes the enchanted person to fall asleep." +
"</BODY>", false, true);
AddPage( 15 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 16 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 14 );
AddLabel( 170, 20, gth, "Swarm" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Mandrake Root, Blood Moss<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>3<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell summons swarms of insects to attack the enemies of the mage from all directions." +
"</BODY>", false, true);
AddLabel( 340, 20, gth, "Peer" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Mandrake Root<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>3<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell enables the mage's vision to leave his body and scout the area." +
"</BODY>", false, true);
AddPage( 16 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 17 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 15 );
AddLabel( 170, 20, gth, "Seance" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Mandrake Root, Blood Moss, Spider's Silk, Sulfurous Ash<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>4<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell enables the mage to move as a ghost." +
"</BODY>", false, true);
AddLabel( 340, 20, gth, "Charm" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Black Pearl, Spider's Silk<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>5<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell can be used either to control an enemy or creature, or to free a charmed one." +
"</BODY>", false, true);
AddPage( 17 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 18 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 16 );
AddLabel( 170, 20, gth, "Dance" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Mandrake Root, Garlic, Blood Moss<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>5<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell makes everyone in sight (except the mage and his party) start to dance." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Mass Sleep" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Ginseng, Nightshade, Spider's Silk<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>5<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is a more potent version of the Third Circle spell Sleep. It puts to sleep a group of targets." +
"</BODY>", false, true);
AddPage( 18 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 19 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 17 );
AddLabel( 170, 20, gth, "Clone" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Ginseng, Nightshade, Spider's Silk, Blood Moss, Sulfurous Ash, Mandrake Root<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>6<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell creates an exact duplicate of any mortal creature, who will then fight for the mage." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Fire Ring" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Black Pearl, Sulfurous Ash, Mandrake Root<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>6<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell create a ring of fire that will encircle the mage's target." +
"</BODY>", false, true);
AddPage( 19 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 20 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 18 );
AddLabel( 170, 20, gth, "Magic Storm" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Blood Moss, Nightshade, Sulfurous Ash, Mandrake Root<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>6<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell summons a swirling storm that will randomly attack the enemies of the mage with powerful bolts of lightning." +
"</BODY>", false, true);
AddLabel( 330, 20, gth, "Tremor" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Blood Moss, Sulfurous Ash, Mandrake Root<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>6<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell creates violent tremors in the earth that will cause the mage's enemies to tremble frantically." +
"</BODY>", false, true);
AddPage( 20 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 21 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 19 );
AddLabel( 170, 20, gth, "Sleep Field" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Ginseng, Spider's Silk, Black Pearl<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>6<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell creates a thick wall of energy field where the mage desires. All who enter this energy field will fall asleep." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Mass Might" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Ginseng, Mandrake Root, Black Pearl<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>7<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell works the same way as the Bless spell, but for everyone in the mage’s party." +
"</BODY>", false, true);
AddPage( 21 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 22 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 20 );
AddLabel( 170, 20, gth, "Energy Mist" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Mandrake Root, Sulfurous Ash, Blood Moss<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>7<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell creates an electrified mist around the mage's target, harming them while they remain within." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Mass Charm" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Mandrake Root, Black Pearl, Spider's Silk<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>7<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is similar to the Fifth Circle spell Charm, but it affects an entire group of the mage's enemies." +
"</BODY>", false, true);
AddPage( 22 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 23 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 21 );
AddLabel( 170, 20, gth, "Invivibility All" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Mandrake Root, Black Pearl, Blood Moss<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>8<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is the equivalent of casting the Fifth Circle spell Invisibility upon the mage and everyone in his party." +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Death Vortex" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Nightshade, Mandrake Root, Sulfurous Ash<BR>" +
"<BASEFONT COLOR=#7B6D20>Spell Circle: <BASEFONT COLOR=BLACK>8<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell creates a swirling black vortex at the point the mage designates, which will thereafter move at random." +
"</BODY>", false, true);
AddPage( 23 );
AddButton( 396, 14, 0x89E, 0x89E, 18, GumpButtonType.Page, 24 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 22 );
AddLabel( 170, 20, gth, "Mass Death" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Uknown<BR>" +
"<BASEFONT COLOR=#7B6D20>Forbidden Spell<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is rumoured to kill everything within the mage's sight" +
"</BODY>", false, true);
AddLabel( 320, 20, gth, "Time Stop" );
AddHtml( 285, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Uknown<BR>" +
"<BASEFONT COLOR=#7B6D20>Forbidden Spell<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is rumoured to stop time across the world." +
"</BODY>", false, true);
AddPage( 24 );
AddButton( 123, 15, 0x89D, 0x89D, 19, GumpButtonType.Page, 23 );
AddLabel( 170, 20, gth, "Armageddon" );
AddHtml( 130, 40, 140, 170, "<BODY>" +
"<BASEFONT COLOR=#7B6D20>Reagents: <BASEFONT COLOR=BLACK>Uknown<BR>" +
"<BASEFONT COLOR=#7B6D20>Forbidden Spell<BR>" +
"<BASEFONT COLOR=#7B6D20>Description: <BASEFONT COLOR=BLACK>This spell is believed to be so powerful that it may be capable of destroying all known living things in the entire world." +
"</BODY>", false, true);
}
public override void OnResponse( NetState state, RelayInfo info )
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0:
{
break;
}
case 1:
{
new FireworksSpell( from, null ).Cast();
break;
}
case 2:
{
new GlimmerSpell( from, null ).Cast();
break;
}
case 3:
{
new AwakenSpell( from, null ).Cast();
break;
}
case 4:
{
new ThunderSpell( from, null ).Cast();
break;
}
case 5:
{
// new WeatherSpell( from, null ).Cast();
break;
}
case 6:
{
// new IgniteSpell( from, null ).Cast();
break;
}
case 7:
{
// new DouseSpell( from, null ).Cast();
break;
}
case 8:
{
// new HelpSpell( from, null ).Cast();
break;
}
case 9:
{
new LocateSpell( from, null ).Cast();
break;
}
case 10:
{
new AwakenAllSpell( from, null ).Cast();
break;
}
case 11:
{
// new DetectTrapSpell( from, null ).Cast();
break;
}
case 12:
{
// new GreatDouseSpell( from, null ).Cast();
break;
}
case 13:
{
//new GreatIgniteSpell( from, null ).Cast();
break;
}
case 17:
{
from.PlaySound(0x55);
break;
}
case 18:
{
from.PlaySound(0x55);
break;
}
case 19:
{
from.PlaySound(0x55);
break;
}
case 21:
{
new EnchantSpell( from, null ).Cast();
break;
}
case 22:
{
new FalseCoinSpell( from, null ).Cast();
break;
}
case 23:
{
new GreatLightSpell( from, null ).Cast();
break;
}
case 24:
{
// new DestroyTrapSpell( from, null ).Cast();
break;
}
case 29:
{
new SleepSpell( from, null ).Cast();
break;
}
case 30:
{
new SwarmSpell( from, null ).Cast();
break;
}
case 31:
{
new PeerSpell( from, null ).Cast();
break;
}
case 41:
{
new SeanceSpell( from, null ).Cast();
break;
}
case 49:
{
new CharmSpell( from, null ).Cast();
break;
}
case 50:
{
new DanceSpell( from, null ).Cast();
break;
}
case 51:
{
new MassSleepSpell( from, null ).Cast();
break;
}
case 52:
{
new CloneSpell( from, null ).Cast();
break;
}
case 53:
{
// new CauseFearSpell( from, null ).Cast();
break;
}
case 54:
{
new FireRingSpell( from, null ).Cast();
break;
}
case 55:
{
// new MagicStormSpell( from, null ).Cast();
break;
}
case 56:
{
// new TremorSpell( from, null ).Cast();
break;
}
case 57:
{
new SleepFieldSpell( from, null ).Cast();
break;
}
case 58:
{
new MassMightSpell( from, null ).Cast();
break;
}
case 59:
{
// new EnergyMistSpell( from, null ).Cast();
break;
}
case 60:
{
// new MassCharmSpell( from, null ).Cast();
break;
}
case 61:
{
new InvisibilityAllSpell( from, null ).Cast();
break;
}
case 62:
{
new DeathVortexSpell( from, null ).Cast();
break;
}
}
}
}
}
[/code:1]
That should do the job.
ps: thx for such cool project, but I must tell that half of this spells is uselles, IMHO
but nevertheless thanks
With love from Russia