PDA

View Full Version : spell scribe limiter


Maceblade
05-11-2013, 11:11 AM
Was curious as to how I would go about limiting the spell scriber to not scribe rank 2 or 3 spells... if that part isnt possible how about just restricting the scribes to lvl 70 and below?

#NPC: Spell_Scribe (Tomes and Quests NPC)

#####

sub EVENT_SAY
{

my $tomes = quest::saylink("Tomes");
my $spells = quest::saylink("Spells");
my $learn = quest::saylink("learn");
my $knowing = quest::saylink("knowing");


if($text=~/Hail/i)
{
plugin::Whisper("Hi there $name, I am Galmoran, keeper of [$tomes] and [$spells]. How can I help you today?");
}
elsif($text=~/tomes/i)
{
plugin::Whisper("Yes, I know all the Tomes in the land. Just let me know if you wish to [$learn] them as well.");
}
elsif($text=~/spells/i)
{
plugin::Whisper("Spells, So many in the land. Would you be interesting in [$knowing] a few?");
}
elsif($text=~/learn/i)
{
quest::traindiscs($ulevel);
}
elsif($text=~/knowing/i)
{
quest::scribespells($ulevel);
}
}

nenelan
05-11-2013, 11:19 AM
For 70 and below is easy, test $ulevel, and if it's higher than 70, only scribe to 70, or display a separate message for that. I'd go with the former, just in case they leveled too many times.

As far as Rk. II and III's, not entirely sure there would be an easy solution to bypass them on the spell scriber, but I could easily be wrong.

Zamthos
05-11-2013, 11:58 AM
You could use the spell_globals table to require them to have a certain flag to scribe Rank 2 and Rank 3 spells.

Example:
mysql> select * from spell_globals;
+---------+------------+--------------+-------+
| spellid | spell_name | qglobal | value |
+---------+------------+--------------+-------+
| 24110 | Mud Shield | fskdfkdsalfa | 1 |
+---------+------------+--------------+-------+
1 row in set (0.00 sec)

Tabasco
05-11-2013, 01:40 PM
In the more recent server revisions there is a rule for UseCHAScribeHack, which works quite a bit like it sounds.

Since CHA is often used as some kind of placeholder in spells, this lets you set the last effect slot in a spell to CHA with a base of 0 and be skipped by scribespells and traindiscs.