[code]
/////////////Sphere_Runebook.scp////////////////
// Xeno's runebook Version 3.0 (Modified by Apophis)
// Scriptor's INC Production
// For versions .54m-.1.0 (.55)
// Wont work with version with broken timers! (.54x?)
// Runebook to be distributed and ran in whole to include this info tag
// To report bugs in any of my scripts (NO script requests!)
// email me here: deathbringer@writeme.com
// Just drop this file Sphere_Runebook.scp in your SCRIPT directory
// Then .add i_x_runebook
// Updated 23 Apr 2001
//---
// New stuff for v3:
// >Inoperability with RB version 1.x+ (is compatable)
// >Changed Color of book to show new version 3
// >Check for illegal destinations
// >Skip all checks for GM's (Recall & Gate)
// >Doesn't require reagents if server INI is set for that
// >Added iteruption to Recall & Gate
// >Added delay to gate
// >Added consume rune switch (upon scribing)(see line 3 after on=@create)
// >Gate location names SRC & DEST
// >Various bug fixes & code cleanup
//---
////////////////////////////////////////////

////////////////////////////////////////////
// Apophis Notes
// To start with id like to point out that this is Xeno's runebook.
// And all i have done is add some extra features as detailed below.
//
// I added a charge feature, players can still use recall with
// regs but they can also use charges if they have no regs and have charged
// the book, players can charge the book using recall scrolls, i gave it a
// max of 8 charges, the idea is that the players can charge the slot
// and use it at times when regs are not available, eg just been killed, pked.
//
// Disabled the interuption and delay to gate and recall
// Changed the book color back to the old one (sorry, i just like the old one)
//
////////////////////////////////////////////
VERSION=0.55

[ITEMDEF i_X_RUNEBOOK]
//RUNEBOOK by Xeno
ID=i_spellbook
RESOURCES=80 I_PARCHMENT, 1 I_HIDE, 1 I_CLOTH
TYPE=t_script//Stores tags but unequipable
WEIGHT=1
LAYER=1 // this is wrong in TILEDATA ?
NAME=Rune Book

ON=@DCLICK
SRC.SOUND=85
DIALOG d_X_BOOK
RETURN 1

///////////////start of add rune/charge button check code//////////////////////
ON=@TARGON_CHAR
SRC.SYSMESSAGE A person? You dont deserve a rune book!
RETURN 1

ON=@TARGON_ITEM
IF (<SRC.TARG.ID> == 01f4c) // recall scroll id
IF <TAG.CHARGES>=8
SRC.SYSMESSAGE Your Rune Book is already fully charged!
RETURN 1
ELSE
TAG.CHARGES=(<TAG.CHARGES>+1)
SRC.SYSMESSAGE You add a charge to your rune book.
SRC.TARG.REMOVE
RETURN 1
ENDIF
ENDIF

IF (<SRC.TARG.TYPE>==t_rune)//(<SRC.TARG.TYPE>==014)//old way new way???
IF (<SRC.TARG.MOREX>==0)
SRC.SYSMESSAGE That is a blank rune! Jeez.
RETURN 1
ENDIF
TAG.HOLD_LOCAL=<SRC.TARG.NAME>
TAG.HOLD_X=<SRC.TARG.MOREX>
TAG.HOLD_Y=<SRC.TARG.MOREY>
TAG.HOLD_Z=<SRC.TARG.MOREZ>
TAG.HOLD_M=<SRC.TARG.MOREM>

if !<src.isgm> && (<TAG.EATRUNE>==01)//if your not gm & rune remove is on.. remove it!
SRC.TARG.REMOVE
ENDIF

IF (<TAG.POS1_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot I.
SRC.SOUND=79
TAG.LOCAL1=<TAG.HOLD_LOCAL>//<SRC.TARG.NAME>
TAG.POS1_X=<TAG.HOLD_X>//<SRC.TARG.MOREX>
TAG.POS1_Y=<TAG.HOLD_Y>//<SRC.TARG.MOREY>
TAG.POS1_Z=<TAG.HOLD_Z>//<SRC.TARG.MOREZ>
TAG.POS1_M=<TAG.HOLD_M>//<SRC.TARG.MOREM>
RETURN 1
ENDIF
IF (<TAG.POS2_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot II.
SRC.SOUND=79
TAG.LOCAL2=<TAG.HOLD_LOCAL>
TAG.POS2_X=<TAG.HOLD_X>
TAG.POS2_Y=<TAG.HOLD_Y>
TAG.POS2_Z=<TAG.HOLD_Z>
TAG.POS2_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS3_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot III.
SRC.SOUND=79
TAG.LOCAL3=<TAG.HOLD_LOCAL>
TAG.POS3_X=<TAG.HOLD_X>
TAG.POS3_Y=<TAG.HOLD_Y>
TAG.POS3_Z=<TAG.HOLD_Z>
TAG.POS3_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS4_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot IV.
SRC.SOUND=79
TAG.LOCAL4=<TAG.HOLD_LOCAL>
TAG.POS4_X=<TAG.HOLD_X>
TAG.POS4_Y=<TAG.HOLD_Y>
TAG.POS4_Z=<TAG.HOLD_Z>
TAG.POS4_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS5_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot V.
SRC.SOUND=79
TAG.LOCAL5=<TAG.HOLD_LOCAL>
TAG.POS5_X=<TAG.HOLD_X>
TAG.POS5_Y=<TAG.HOLD_Y>
TAG.POS5_Z=<TAG.HOLD_Z>
TAG.POS5_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS6_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot VI.
SRC.SOUND=79
TAG.LOCAL6=<TAG.HOLD_LOCAL>
TAG.POS6_X=<TAG.HOLD_X>
TAG.POS6_Y=<TAG.HOLD_Y>
TAG.POS6_Z=<TAG.HOLD_Z>
TAG.POS6_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS7_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot VII.
SRC.SOUND=79
TAG.LOCAL7=<TAG.HOLD_LOCAL>
TAG.POS7_X=<TAG.HOLD_X>
TAG.POS7_Y=<TAG.HOLD_Y>
TAG.POS7_Z=<TAG.HOLD_Z>
TAG.POS7_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS8_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot VIII.
SRC.SOUND=79
TAG.LOCAL8=<TAG.HOLD_LOCAL>
TAG.POS8_X=<TAG.HOLD_X>
TAG.POS8_Y=<TAG.HOLD_Y>
TAG.POS8_Z=<TAG.HOLD_Z>
TAG.POS8_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS9_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot IX.
SRC.SOUND=79
TAG.LOCAL9=<TAG.HOLD_LOCAL>
TAG.POS9_X=<TAG.HOLD_X>
TAG.POS9_Y=<TAG.HOLD_Y>
TAG.POS9_Z=<TAG.HOLD_Z>
TAG.POS9_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS10_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot X.
SRC.SOUND=79
TAG.LOCAL10=<TAG.HOLD_LOCAL>
TAG.POS10_X=<TAG.HOLD_X>
TAG.POS10_Y=<TAG.HOLD_Y>
TAG.POS10_Z=<TAG.HOLD_Z>
TAG.POS10_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS11_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot XI.
SRC.SOUND=79
TAG.LOCAL11=<TAG.HOLD_LOCAL>
TAG.POS11_X=<TAG.HOLD_X>
TAG.POS11_Y=<TAG.HOLD_Y>
TAG.POS11_Z=<TAG.HOLD_Z>
TAG.POS11_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS12_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot XII.
SRC.SOUND=79
TAG.LOCAL12=<TAG.HOLD_LOCAL>
TAG.POS12_X=<TAG.HOLD_X>
TAG.POS12_Y=<TAG.HOLD_Y>
TAG.POS12_Z=<TAG.HOLD_Z>
TAG.POS12_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS13_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot XIII.
SRC.SOUND=79
TAG.LOCAL13=<TAG.HOLD_LOCAL>
TAG.POS13_X=<TAG.HOLD_X>
TAG.POS13_Y=<TAG.HOLD_Y>
TAG.POS13_Z=<TAG.HOLD_Z>
TAG.POS13_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS14_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot XIV.
SRC.SOUND=79
TAG.LOCAL14=<TAG.HOLD_LOCAL>
TAG.POS14_X=<TAG.HOLD_X>
TAG.POS14_Y=<TAG.HOLD_Y>
TAG.POS14_Z=<TAG.HOLD_Z>
TAG.POS14_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS15_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot XV.
SRC.SOUND=79
TAG.LOCAL15=<TAG.HOLD_LOCAL>
TAG.POS15_X=<TAG.HOLD_X>
TAG.POS15_Y=<TAG.HOLD_Y>
TAG.POS15_Z=<TAG.HOLD_Z>
TAG.POS15_M=<TAG.HOLD_M>
RETURN 1
ENDIF
IF (<TAG.POS16_X>=00)
SRC.SYSMESSAGE You scibe the rune in slot XVI.
SRC.SOUND=79
TAG.LOCAL16=<TAG.HOLD_LOCAL>
TAG.POS16_X=<TAG.HOLD_X>
TAG.POS16_Y=<TAG.HOLD_Y>
TAG.POS16_Z=<TAG.HOLD_Z>
TAG.POS16_M=<TAG.HOLD_M>
RETURN 1
ENDIF

SRC.SYSMESSAGE You have no empty slots for that!
RETURN 1
ENDIF//Main if @ start
IF (<SRC.TARG.TYPE>==t_rune)
SRC.SAY Sphere tags/target/VAR maybe broken!//catch all
RETURN 1//Stop all
ENDIF

///////////////////end of add rune button///////////////////

CATEGORY=Apophis
SUBSECTION=Special Items
DESCRIPTION=Rune Book

ON=@CREATE
COLOR=0481
ATTR=attr_magic|attr_newbie//ATTR=04
TAG.EATRUNE=01//01 to remove runes after scribing!
TAG.POS1_X=0
TAG.POS2_X=0
TAG.POS3_X=0
TAG.POS4_X=0
TAG.POS5_X=0
TAG.POS6_X=0
TAG.POS7_X=0
TAG.POS8_X=0
TAG.POS9_X=0
TAG.POS10_X=0
TAG.POS11_X=0
TAG.POS12_X=0
TAG.POS13_X=0
TAG.POS14_X=0
TAG.POS15_X=0
TAG.POS16_X=0

TAG.CHARGES=00// charges for recall (Hex)


[ITEMDEF i_X_RBGATE]
//custom gate
ID=0f6c//01af3
//DEFNAME=i_X_RBGATE
RESOURCES=i_scroll_gate_travel
TYPE=t_telepad
CATEGORY=Apophis
SUBSECTION=Other
DESCRIPTION=RB Gate

ON=@TIMER
if ( <more1> )
more1=<more1>-1
TIMER=1
return 1
else
SOUND=528
REMOVE
ENDIF
RETURN 1

ON=@Create
//COLOR=032
MORE1=36
ATTR=010

//////////////Start the GUMP//////////////////

[DIALOG d_X_BOOK]
// recall book!
0, 0
//page 0
gumppic 100 10 2200
gumppic 125 50 57
gumppic 145 50 58
gumppic 160 50 58
gumppic 175 50 58
gumppic 190 50 58
gumppic 205 50 58
gumppic 220 50 58
gumppic 230 50 59

gumppic 290 50 57
gumppic 310 50 58
gumppic 325 50 58
gumppic 340 50 58
gumppic 355 50 58
gumppic 370 50 58
gumppic 385 50 58
gumppic 395 50 59

page 0//moved from top side!
//Recall Button
button 125 65 2103 2104 1 0 1//Button 1
button 125 80 2103 2104 1 0 2//Button 2
button 125 95 2103 2104 1 0 3//Button 3
button 125 110 2103 2104 1 0 4//Button 4
button 125 125 2103 2104 1 0 5//Button 5
button 125 140 2103 2104 1 0 6//Button 6
button 125 155 2103 2104 1 0 7//Button 7
button 125 170 2103 2104 1 0 8//Button 8
//Gate Button
button 135 65 2103 2104 1 0 17//Button 17
button 135 80 2103 2104 1 0 18//Button 18
button 135 95 2103 2104 1 0 19//Button 19
button 135 110 2103 2104 1 0 20//Button 20
button 135 125 2103 2104 1 0 21//Button 21
button 135 140 2103 2104 1 0 22//Button 22
button 135 155 2103 2104 1 0 23//Button 23
button 135 170 2103 2104 1 0 24//Button 24
//Erase Button
button 250 65 2103 2104 1 0 25//Button 25
button 250 80 2103 2104 1 0 26//Button 26
button 250 95 2103 2104 1 0 27//Button 27
button 250 110 2103 2104 1 0 28//Button 28
button 250 125 2103 2104 1 0 29//Button 29
button 250 140 2103 2104 1 0 30//Button 30
button 250 155 2103 2104 1 0 31//Button 31
button 250 170 2103 2104 1 0 32//Button 32
//oposit page
//recall button
button 285 65 2103 2104 1 0 9 //Button 9
button 285 80 2103 2104 1 0 10 //Button 10
button 285 95 2103 2104 1 0 11 //Button 11
button 285 110 2103 2104 1 0 12//Button 12
button 285 125 2103 2104 1 0 13//Button 13
button 285 140 2103 2104 1 0 14//Button 14
button 285 155 2103 2104 1 0 15//Button 15
button 285 170 2103 2104 1 0 16//Button 16
//Gate Button
button 295 65 2103 2104 1 0 33//Button 33
button 295 80 2103 2104 1 0 34//Button 34
button 295 95 2103 2104 1 0 35//Button 35
button 295 110 2103 2104 1 0 36//Button 36
button 295 125 2103 2104 1 0 37//Button 37
button 295 140 2103 2104 1 0 38//Button 38
button 295 155 2103 2104 1 0 39//Button 39
button 295 170 2103 2104 1 0 40//Button 40
//Erase Button
button 410 65 2103 2104 1 0 41//Button 41
button 410 80 2103 2104 1 0 42//Button 42
button 410 95 2103 2104 1 0 43//Button 43
button 410 110 2103 2104 1 0 44//Button 44
button 410 125 2103 2104 1 0 45//Button 45
button 410 140 2103 2104 1 0 46//Button 46
button 410 155 2103 2104 1 0 47//Button 47
button 410 170 2103 2104 1 0 48//Button 48
//END LOCAL/start Add
button 400 35 2361 2362 1 0 49//add rune


//Text
// croppedtext // 6 = x,y,sx,sy,page,startindex
croppedtext 145 60 110 17 0 0//Location 1
croppedtext 145 75 110 17 0 1//Location 2
croppedtext 145 90 110 17 0 2//Location 3
croppedtext 145 105 110 17 0 3//Location 4
croppedtext 145 120 110 17 0 4//Location 5
croppedtext 145 135 110 17 0 5//Location 6
croppedtext 145 150 110 17 0 6//Location 7
croppedtext 145 165 110 17 0 7//Location 8
//oposit page
croppedtext 305 60 110 17 0 8//Location 9
croppedtext 305 75 110 17 0 9//Location 10
croppedtext 305 90 110 17 0 10//Location 11
croppedtext 305 105 110 17 0 11//Location 12
croppedtext 305 120 110 17 0 12//Location 13
croppedtext 305 135 110 17 0 13//Location 14
croppedtext 305 150 110 17 0 14//Location 15
croppedtext 305 165 110 17 0 15//Location 16
//Some extra text
text 128 180 0 16//text 125 35 0 16
text 305 36 1300 17
text 140 15 1300 18
text 293 20 1300 19
text 128 193 0 20
text 140 35 1300 21
text 300 180 1300 22
text 300 195 1300 23
croppedtext 210 35 110 17 0 24//Charge Display

[DIALOG d_X_BOOK TEXT]
<TAG.local1>//Location 1
<TAG.local2>//Location 2
<TAG.local3>//Location 3
<TAG.local4>//Location 4
<TAG.local5>//Location 5
<TAG.local6>//Location 6
<TAG.local7>//Location 7
<TAG.local8>//Location 8
//page 2
<TAG.local9>//Location 9
<TAG.local10>//Location 10
<TAG.local11>//Location 11
<TAG.local12>//Location 12
<TAG.local13>//Location 13
<TAG.local14>//Location 14
<TAG.local15>//Location 15
<TAG.local16>//Location 16
| |_Gate Erase_|//text 16
Add a Rune//text 17
Rune Book//text 18
Add a Charge//text 19
|_Recall//text 20
Charges// text 21
1 recall Scroll// text 22
= 1 charge// text 23
<TAG.CHARGES>//# of charges in the book// text 24

[DIALOG d_X_BOOK BUTTON]
ONBUTTON=0
SRC.SYSMESSAGE The book has been closed!
SRC.SOUND=85
RETURN 1

ONBUTTON=1
IF <TAG.POS1_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF

/////////////Start of fail to recall checks/////////////////////////
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF

IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF


IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF

SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
/////////////End of fail to recall checks/////////////////////////

src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS1_X>> <EVAL <TAG.POS1_Y>> <EVAL <TAG.POS1_Z>> <EVAL <TAG.POS1_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS1_X>> <EVAL <TAG.POS1_Y>> <EVAL <TAG.POS1_Z>> <EVAL <TAG.POS1_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=2
IF <TAG.POS2_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF

/////////////Start of fail to recall checks/////////////////////////
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF

IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF


IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS2_X>> <EVAL <TAG.POS2_Y>> <EVAL <TAG.POS2_Z>> <EVAL <TAG.POS2_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS2_X>> <EVAL <TAG.POS2_Y>> <EVAL <TAG.POS2_Z>> <EVAL <TAG.POS2_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=3
IF <TAG.POS3_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS3_X>> <EVAL <TAG.POS3_Y>> <EVAL <TAG.POS3_Z>> <EVAL <TAG.POS3_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS3_X>> <EVAL <TAG.POS3_Y>> <EVAL <TAG.POS3_Z>> <EVAL <TAG.POS3_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=4
IF <TAG.POS4_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS4_X>> <EVAL <TAG.POS4_Y>> <EVAL <TAG.POS4_Z>> <EVAL <TAG.POS4_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS4_X>> <EVAL <TAG.POS4_Y>> <EVAL <TAG.POS4_Z>> <EVAL <TAG.POS4_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=5
IF <TAG.POS5_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS5_X>> <EVAL <TAG.POS5_Y>> <EVAL <TAG.POS5_Z>> <EVAL <TAG.POS5_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS5_X>> <EVAL <TAG.POS5_Y>> <EVAL <TAG.POS5_Z>> <EVAL <TAG.POS5_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=6
IF <TAG.POS6_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS6_X>> <EVAL <TAG.POS6_Y>> <EVAL <TAG.POS6_Z>> <EVAL <TAG.POS6_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS6_X>> <EVAL <TAG.POS6_Y>> <EVAL <TAG.POS6_Z>> <EVAL <TAG.POS6_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=7
IF <TAG.POS7_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS7_X>> <EVAL <TAG.POS7_Y>> <EVAL <TAG.POS7_Z>> <EVAL <TAG.POS7_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS7_X>> <EVAL <TAG.POS7_Y>> <EVAL <TAG.POS7_Z>> <EVAL <TAG.POS7_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=8
IF <TAG.POS8_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS8_X>> <EVAL <TAG.POS8_Y>> <EVAL <TAG.POS8_Z>> <EVAL <TAG.POS8_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS8_X>> <EVAL <TAG.POS8_Y>> <EVAL <TAG.POS8_Z>> <EVAL <TAG.POS8_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=9
IF <TAG.POS9_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS9_X>> <EVAL <TAG.POS9_Y>> <EVAL <TAG.POS9_Z>> <EVAL <TAG.POS9_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS9_X>> <EVAL <TAG.POS9_Y>> <EVAL <TAG.POS9_Z>> <EVAL <TAG.POS9_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=10
IF <TAG.POS10_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS10_X>> <EVAL <TAG.POS10_Y>> <EVAL <TAG.POS10_Z>> <EVAL <TAG.POS10_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS10_X>> <EVAL <TAG.POS10_Y>> <EVAL <TAG.POS10_Z>> <EVAL <TAG.POS10_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=11
IF <TAG.POS11_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough charges or reagents.
SRC.SOUND=85
RETURN 1
ENDIF
ENDIF
IF (<SRC.MANA><11)
SRC.SOUND=0108
SRC.SYSMESSAGE You dont have enough mana, to attempt to recall!
RETURN 1
ENDIF
SRC.say Kal Ort Por
SRC.ANIM=17
SRC.MANA=(<SRC.MANA>+-5)
IF (<SRC.MAGERY><=400
SRC.SOUND=0108
SRC.SYSMESSAGE You failed to recall! Low skill.
SRC.SOUND=85
RETURN 1
ENDIF
src.newitem i_x_research
SRC.ACT.P=<EVAL <TAG.POS11_X>> <EVAL <TAG.POS11_Y>> <EVAL <TAG.POS11_Z>> <EVAL <TAG.POS11_M>>
TAG.research=<SRC.ACT.REGION.flags>
if (<tag.research>==01092)
SRC.SYSMESSAGE That area is currently blocked!
return 1
endif
SRC.MANA=(<SRC.MANA>+-6)
IF <serv.REAGENTSREQUIRED>=01
IF (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
SRC.CONSUME=1 i_reag_black_pearl
SRC.CONSUME=1 i_reag_blood_moss
SRC.CONSUME=1 i_reag_mandrake_root
ELSE
TAG.CHARGES=(<TAG.CHARGES>-1)
SRC.SYSMESSAGE You have used a charge to recall.
ENDIF
ENDIF
ENDIF//skip to here if GM

SRC.SOUND=85 // or 92 gate- 526 or 524
src.newitem i_X_RBDELAY//or 07626 timer
src.act.morep=<EVAL <TAG.POS11_X>> <EVAL <TAG.POS11_Y>> <EVAL <TAG.POS11_Z>> <EVAL <TAG.POS11_M>>
src.act.more1=1
src.act.equip
SRC.SOUND=85
return 1

ONBUTTON=12
IF <TAG.POS12_X>=00
SRC.SYSMESSAGE That slot does not have a rune wrote to it!
RETURN 1
ENDIF
if !<src.isgm>//Skip all the BS for GM's
IF <SRC.REGION.FLAGS>&0E
SRC.SYSMESSAGE This area prevents you from using this book!
SRC.SOUND=85
RETURN 1
ENDIF
IF (<serv.REAGENTSREQUIRED>=01) &! (<SRC.RESTEST 1 i_reag_black_pearl>) |! (<SRC.RESTEST 1 i_reag_mandrake_root>) |! (<SRC.RESTEST 1 i_reag_blood_moss>)
IF (<TAG.CHARGES><=00)
SRC.SOUND=01