Kod:
[ITEMDEF 02253]
DEFNAME=i_spellbook_necromancy
NAME=Necromancy Spellbook
TYPE=t_spellbook_necro
RESOURCES=80 i_parchment,1 i_hide_normal, 1 i_cloth
WEIGHT=1
ON=@Create
ATTR=attr_magic|attr_newbie
morez=100
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Necromancers
DESCRIPTION=Necromancy Spellbook
ON=@DropOn_Self
if <argo.type> == t_scroll
if (<argo.morex> > <morez>) && (<argo.morex> < <eval <morez>+100>)
if <more1> != (<more1> | <argo.more1>)
sfx 058
more1 |= <argo.more1>
if <argo.amount> == 1
argo.remove
else
argo.amount -= 1
argo.update
endif
return 1
endif
endif
endif
[ITEMDEF 02260]
DEFNAME=i_scroll_animate_dead
TYPE=t_scroll
WEIGHT=1
VALUE=120
NAME=Animate Dead Scroll
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 40.0
ON=@Create
ATTR=attr_magic
MORE1=01
MOREX=s_animate_dead
MOREY={50 80}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Animate Dead
[ITEMDEF 02261]
DEFNAME=i_scroll_blood_oath
NAME=Blood Oath Scroll
TYPE=t_scroll
WEIGHT=1
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
ON=@Create
ATTR=attr_magic
MORE1=02
MOREX=s_blood_oath
MOREY={50 80}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Blood Oath
[ITEMDEF 02262]
DEFNAME=i_scroll_corpse_skin
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Corpse Skin Scroll
ON=@Create
ATTR=attr_magic
MORE1=04
MOREX=s_corpse_skin
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Corpse Skin
[ITEMDEF 02263]
DEFNAME=i_scroll_curse_weapon
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 0.1
NAME=Curse Weapon Scroll
ON=@Create
ATTR=attr_magic
MORE1=08
MOREX=s_curse_weapon
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Curse Weapon
[ITEMDEF 02264]
DEFNAME=i_scroll_evil_omen
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Evil Omen Scroll
ON=@Create
ATTR=attr_magic
MORE1=010
MOREX=s_evil_omen
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Evil Omen
[ITEMDEF 02265]
DEFNAME=i_scroll_horrific_beast
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 40.0
NAME=Horrific Beast Scroll
ON=@Create
ATTR=attr_magic
MORE1=020
MOREX=s_horrific_beast
MOREY={10 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Horrific Beast
[ITEMDEF 02266]
DEFNAME=i_scroll_lich_transformation
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 70.0
NAME=Lich Form Scroll
ON=@Create
ATTR=attr_magic
MORE1=040
MOREX=s_liche_form
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Lich transformation
[ITEMDEF 02267]
DEFNAME=i_scroll_mind_rot
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 30.0
NAME=Mind Rot Scroll
ON=@Create
ATTR=attr_magic
MORE1=080
MOREX=s_mind_rot
MOREY={10 10}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Mind Rot
[ITEMDEF 02268]
DEFNAME=i_scroll_pain_spike
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Pain Spike Scroll
ON=@Create
ATTR=attr_magic
MORE1=0100
MOREX=s_pain_Spike
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Pain Spike
[ITEMDEF 02269]
DEFNAME=i_scroll_poison_strike
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 50.0
NAME=Poison Strike Scroll
ON=@Create
ATTR=attr_magic
MORE1=0200
MOREX=s_poison_strike
MOREY={20 50}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Poison Strike
[ITEMDEF 0226a]
DEFNAME=i_scroll_strangle
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 65.0
NAME=Strangle Scroll
ON=@Create
ATTR=attr_magic
MORE1=0400
MOREX=s_strangle
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Strangulation
[ITEMDEF 0226b]
DEFNAME=i_scroll_summon_familiar
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 30.0
NAME=Summon Familiar Scroll
ON=@Create
ATTR=attr_magic
MORE1=0800
MOREX=s_summon_familiar
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Summon Familiar
[ITEMDEF 0226c]
DEFNAME=i_scroll_vampiric_embrace
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 99.0
NAME=Vampiric Embrace Scroll
ON=@Create
ATTR=attr_magic
MORE1=01000
MOREX=s_vampiric_embrace
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Vampiric Embrace
[ITEMDEF 0226d]
DEFNAME=i_scroll_vengeful_spirit
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 80.0
NAME=Vengeful Spirit Scroll
ON=@Create
ATTR=attr_magic
MORE1=02000
MOREX=s_vengeful_spirit
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Vengeful Spirit
[ITEMDEF 0226e]
DEFNAME=i_scroll_wither
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 60.0
NAME=Wither Scroll
ON=@Create
ATTR=attr_magic
MORE1=04000
MOREX=s_wither
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Wither
[ITEMDEF 0226f]
DEFNAME=i_scroll_wraith_form
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Wraith Form Scroll
ON=@Create
ATTR=attr_magic
MORE1=08000
MOREX=s_wraith_form
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Wraith Form
//////////////////// FAMILIARS ////////////////////////
[CHARDEF c_familiar_horde_minion]
ID=c_horde_minion
NAME=Horde Minion
DAM=14,20
CAN=MT_WALK|MT_RUN|MT_USEHANDS
MOVERATE=40
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=55
TAG.FIRERESIST=55
TAG.POISONRESIST=30
TAG.ENERGYRESIST=30
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Horde Minion
ON=@Create
EVENTS +e_familiar_horde_minion
NPC=brain_monster
STR=100
DEX=110
INT=100
MAXHITS=70
MAXSTAM=110
TACTICS=50.0
WRESTLING=75.0
FAME=0
KARMA=0
[EVENTS e_familiar_horde_minion]
ON=@ItemStep
if !( (<act.attr>&attr_static) || (<act.attr>&attr_move_never) || (<act.attr>&attr_invis) || (<act.attr>&attr_owned) )
emote pick up an item for his master.
act.cont=<owner.findlayer.layer_pack.uid>
endif
[CHARDEF c_familiar_wisp_shadow]
ID=c_wisp
NAME=Shadow Wisp
DAM=2,8
CAN=MT_WALK|MT_FLY|MT_FIRE_IMMUNE|MT_USEHANDS
TAG.PHYSICALDAMAGE=50
TAG.ENERGYDAMAGE=50
TAG.PHYSICALRESIST=15
TAG.FIRERESIST=15
TAG.POISONRESIST=15
TAG.ENERGYRESIST=100
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Shadow Wisp
ON=@Create
EVENTS +e_familiar_shadow_wisp
NPC=brain_monster
COLOR=colors_black
STR=50
DEX=60
INT=100
TACTICS=40.0
WRESTLING=40.0
FAME=0
KARMA=0
ITEMNEWBIE=i_light_source
ATTR=attr_magic|attr_newbie
ITEMNEWBIE=i_wisp_mana_equiper
ITEMNEWBIE=i_wisp_mana_timer
ATTR=attr_magic|attr_newbie
[ITEMDEF i_wisp_mana_equiper]
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wisp Mana Equiper
ON=@CREATE
TIMER=1
ON=@TIMER
trysrc <cont.uid> cont.findid.i_wisp_mana_timer.trigger=@equip
remove
return 1
[ITEMDEF i_wisp_mana_timer]
NAME=Wisp Mana Timer
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wisp Mana Timer
ON=@Equip
timer={15 25}
ON=@Timer
if (<cont.owner.karma> < 0) && (<cont.owner.karma> > -1000)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 10
elseif (<cont.owner.karma> < 1000) && (<cont.owner.karma> > -2500)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 20
elseif (<cont.owner.karma> < 2500) && (<cont.owner.karma> > -5000)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 30
elseif (<cont.owner.karma> < 5000) && (<cont.owner.karma> > -7500)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 40
elseif (<cont.owner.karma> < 7500)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 50
endif
if (<cont.owner.mana> > <cont.owner.maxmana>)
cont.owner.mana=<cont.owner.maxmana>
endif
timer={15 25}
return 1
[EVENTS e_familiar_shadow_wisp]
[CHARDEF c_familiar_dark_wolf]
ID=c_wolf
NAME=Dark Wolf
DAM=15,33
CAN=MT_WALK|MT_RUN
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=45
TAG.FIRERESIST=35
TAG.COLDRESIST=35
TAG.POISONRESIST=35
TAG.ENERGYRESIST=35
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Dark Wolf
ON=@Create
EVENTS +e_familiar_dark_wolf
NPC=brain_animal
COLOR=colors_black
STR=100
DEX=90
INT=90
MAXHITS=60
MAXSTAM=90
TACTICS=50.0
WRESTLING=87.5
FAME=0
KARMA=0
ITEMNEWBIE=i_wolf_stam_equiper
ITEMNEWBIE=i_wolf_stam_timer
ATTR=attr_magic|attr_newbie
[ITEMDEF i_wolf_stam_equiper]
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wolf Stamina Equiper
ON=@CREATE
TIMER=1
ON=@TIMER
trysrc <cont.uid> cont.findid.i_wolf_stam_timer.trigger=@equip
remove
return 1
[ITEMDEF i_wolf_stam_timer]
NAME=Wolf Stamina Timer
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wolf Stamina Timer
ON=@Equip
timer=2
ON=@Timer
cont.owner.stam += 1
if (<cont.owner.stam> > <cont.owner.maxstam>)
cont.owner.stam=<cont.owner.maxstam>
endif
timer=2
return 1
[EVENTS e_familiar_dark_wolf]
ON=@Dclick
if (<ismypet>)
serv.newitem i_wolf_mastery
new.equip <src>
return 1
endif
[ITEMDEF i_wolf_mastery]
ID=i_memory
TYPE=t_eq_script
NAME=Wolf Mastery
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wolf Mastery
ON=@Equip
TARGET @,3,1 Which wolf would you like to control?
TIMER=15
ON=@Timer
remove
return 1
ON=@TargOn_Item
remove
return 1
ON=@TargOn_Ground
remove
return 1
ON=@TargOn_Char
if !(strmatch("*wolf*","<cont.targ.id>"))
cont.sysmessage @,3,1 That is not a wolf!
remove
return 1
else
if (<CONT.CURFOLLOWER>>4)
CONT.sysmessage @,3,1 You have too many followers.
return 1
endif
if (<src.tag0.slots_needed>)
local.slots = (<src.tag0.slots_needed>)
else
local.slots = 1
endif
SRC.CURFOLLOWER += <local.slots>
local.npc=<cont.targ.uid>
cont.targ.flags=<cont.targ.flags>|statf_pet
while (<cont.targ.memoryfindtype.02>)
cont.targ.memoryfindtype.02.remove
endwhile
serv.newitem i_memory
new.color=042
new.link=<cont.uid>
new.cont=<local.npc>
try uid.<local.npc>.update
cont.sysmessage @,3,1 The wolf will accept your orders!
remove
return 1
endif
[CHARDEF c_familiar_death_adder]
ID=c_snake_giant
NAME=Death Adder
DAM=1,4
CAN=MT_WALK|MT_RUN
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=10
TAG.POISONRESIST=100
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Death Adder
ON=@Create
EVENTS +e_familiar_death_adder
NPC=brain_monster
COLOR=colors_snake
STR=70
DEX=150
INT=100
MAXHITS=50
MAXSTAM=150
TACTICS=50.0
WRESTLING=90.0
POISONING=150.0
FAME=0
KARMA=0
[EVENTS e_familiar_death_adder]
ON=@Dclick
if (<ismypet>)
serv.newitem i_snake_charming
new.equip <src>
return 1
endif
[ITEMDEF i_snake_charming]
ID=i_memory
TYPE=t_eq_script
NAME=Snake Charming
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Snake Charming
ON=@Equip
TARGET @,3,1 Which snake would you like to control?
TIMER=15
ON=@Timer
remove
return 1
ON=@TargOn_Item
remove
return 1
ON=@TargOn_Ground
remove
return 1
ON=@TargOn_Char
if !(strmatch("*snake*","<cont.targ.id>"))
cont.sysmessage @,3,1 That is not a snake!
remove
return 1
else
if (<CONT.CURFOLLOWER>>4)
CONT.sysmessage @,3,1 You have too many followers.
return 1
endif
if (<src.tag0.slots_needed>)
local.slots = (<src.tag0.slots_needed>)
else
local.slots = 1
endif
SRC.CURFOLLOWER += <local.slots>
local.npc=<cont.targ.uid>
cont.targ.flags=<cont.targ.flags>|statf_pet
while (<cont.targ.memoryfindtype.02>)
cont.targ.memoryfindtype.02.remove
endwhile
serv.newitem i_memory
new.color=042
new.link=<cont.uid>
new.cont=<local.npc>
try uid.<local.npc>.update
cont.sysmessage @,3,1 The snake will accept your orders!
remove
return 1
endif
[chardef c_familiar_vampire_bat]
ID=c_vampire_bat
NAME=Vampire Bat
DAM=7,21
CAN=MT_WALK|MT_FLY
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=15
TAG.FIRERESIST=15
TAG.COLDRESIST=15
TAG.POISONRESIST=15
TAG.ENERGYRESIST=15
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Vampire Bat
ON=@Create
EVENTS +e_familiar_vampire_bat
NPC=brain_monster
STR=120
DEX=120
INT=100
MAXHITS=90
TACTICS=50.0
WRESTLING=95.0
FAME=0
KARMA=0
[EVENTS e_familiar_vampire_bat]
ON=@Hit
owner.hits += <eval <argn1>>
if (<owner.hits> > <owner.maxhits>)
owner.hits=<owner.maxhits>
endif
//// BÜYÜLER ////
[spell 110]
DEFNAME=s_poison_strike
NAME=Poison Strike
SOUND=snd_spell_poison_field
CAST_TIME=2.0
RESOURCES=
RUNE_ITEM=i_rune_poison
SCROLL_ITEM=i_scroll_poison_strike
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=0
EFFECT=0
DURATION=1.0,15.0
MANAUSE=17
SKILLREQ=Necromancy 50.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Vas Nox
ON=@Success
if (<src.mana><17)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 17
local.lmc = <eval 17*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
local.resist = <act.respoison>/5
if !(<local.resist>>14)
act.damage <eval 15-<local.resist>> 1 <src.uid>
ENDIF
act.spelleffect 20 1000
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move n
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move s
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move e
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move w
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
return 1
[itemdef i_poison_cloud]
defname=i_poison_cloud
name=Poison Cloud
id=i_fx_smoke
ON=@Create
color=045
ON=@Step
src.spelleffect 20 500
local.resist = <src.respoison>/5
if !(<local.resist>>5)
src.damage <eval 6-<local.resist>> 1 <uid.<tag.owner>>
ENDIF
remove
fix
return 1
///////////////////// ANIMATE DEAD /////////////////////////
[Spell 101]
DEFNAME=s_animate_dead
NAME=Animate Dead
SOUND=snd_spell_resurrection
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=i_rune_resurrection
SCROLL_ITEM=i_scroll_animate_dead
FLAGS=spellflag_summon
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 40.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Uus Corp
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
if <src.restest i_animate_dead>
src.consume i_animate_dead
return 1
endif
serv.newitem i_animate_dead
new.equip <src>
[ITEMDEF i_animate_dead]
ID=i_memory
TYPE=t_eq_script
NAME=Animate Dead
ON=@Equip
TARGET @,3,1 Which corpse would you like to animate?
TIMER=15
ON=@Timer
remove
return 1
ON=@TargOn_Ground
remove
return 1
ON=@TargOn_Char
remove
return 1
ON=@TargOn_Item
local.casterability=(<eval ((<cont.necromancy>/100)*30)+((<cont.spiritspeak>/100)*70)>*180)
if (<local.casterability> > <cont.targ.tag0.corpsefame>)
local.casterability=<cont.targ.tag.corpsefame>
endif
if !(<cont.targ.baseid>==i_corpse)
cont.sysmessage @,3,1 That is not a corpse.
remove
return 1
elseif ((<cont.targ.amount>==400) || (<cont.targ.amount>==401))
cont.sysmessage @,3,1 The spirit of that corpse is still around.
remove
return 1
else
serv.newitem=i_fx_smoke
new.attr=attr_static|attr_decay
new.timer=1
new.p=<cont.targ.p>
if (<local.casterability> > 17500)
serv.newnpc c_skeletal_dragon
elseif (<local.casterability> > 15000)
serv.newnpc c_m_liche_lord
elseif (<local.casterability> > 12500)
serv.newnpc c_flesh_golem
elseif (<local.casterability> > 10000)
serv.newnpc c_mummy
elseif (<local.casterability> > 8000)
serv.newnpc c_liche
elseif (<local.casterability> > 6000)
serv.newnpc c_m_skeleton_knight
elseif (<local.casterability> > 4000)
serv.newnpc c_m_skeleton_mage
elseif (<local.casterability> > 2000)
serv.newnpc c_patchwork_skeleton
else
serv.newnpc c_mound_maggots
endif
local.npc=<new.uid>
new.p=<cont.targ.p>
new.flags |= statf_conjured
new.maxhits=(<eval <local.casterability>/50>)
new.hits=<new.maxhits>
new.karma=-2500
new.fame=0
new.events +e_animate_dead
serv.newitem i_animate_checker
new.timer=1
new.cont=<local.npc>
cont.targ.remove
remove
return 1
endif
[ITEMDEF i_animate_checker]
ID=i_memory
TYPE=t_eq_script
NAME=Animate Checker
ON=@Timer
cont.hits -= 1
cont.maxhits -= 1
if (<cont.hits> < 0)
cont.hits=0
cont.remove
endif
timer=1
return 1
[events e_animate_dead]
ON=@NPCLookAtChar
if !((<src.body>==c_man) || (<src.body>==c_woman) || (<src.isplayer>))
attack
return 1
endif
ON=@Death
src.remove
////////////////////////// PAIN SPIKE //////////////////////////
[spell 109]
DEFNAME=s_pain_spike
NAME=Pain Spike
SOUND=0210
RUNES=
CAST_TIME=1.0
RESOURCES=
RUNE_ITEM=i_rune_poison
SCROLL_ITEM=i_scroll_pain_spike
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=5
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Sar
ON=@Success
if (<src.mana><5)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 5
local.lmc = <eval 5*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
serv.newitem i_pain_spike
new.more1=<eval <src.spiritspeak>/60>-<eval <act.magicresistance>/120>
act.EFFECT 3,i_fx_glow_spike,1,8,0,39,3
act.EFFECT 3,i_fx_glow_spike,1,8,0,39,4
act.damage <eval <new.more1>> 02 <uid>
new.equip
return 1
[itemdef i_pain_spike]
NAME=Pain Spike
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
timer=10
ON=@Timer
if !(<cont.flags> & statf_dead)
cont.sound 0210
cont.hits += <eval <more1>>
if (<cont.hits> > <cont.maxhits>)
cont.hits=<cont.maxhits>
endif
remove
return 1
else
remove
return 1
endif
//////////////////////// BLOOD OATH /////////////////////////////
[spell 102]
DEFNAME=s_blood_oath
NAME=Blood Oath
SOUND=01e9
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_blood_oath
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=i_fx_curse
EFFECT=33,44
DURATION=0
MANAUSE=13
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Jux Mani Xen
ON=@Success
if (<src.mana><13)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 13
local.lmc = <eval 13*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.restest i_blood_oath>
act.consume i_blood_oath
return 1
endif
act.effect 3,i_fx_curse,16,20
act.sound 01e9
serv.newitem i_blood_oath
new.tag.link=<src.uid>
new.timer=(<eval <src.spiritspeak>-<act.magicresistance>>/80)+8
if (<new.timer><1)
timer 0
endif
act.equip <new>
return 1
[itemdef i_blood_oath]
ID=i_memory
NAME=blood oath
TYPE=t_eq_script
ON=@Equip
src.events +e_blood_oath
ON=@UnEquip
cont.events -e_blood_oath
ON=@Timer
remove
return 1
[events e_blood_oath]
ON=@Hit
damage <argn1> <argn2> <uid.<findid.i_blood_oath.tag.link>>
ON=@SpellCast
if (<serv.spell.<argn>.flags>&SPELLFLAG_HARM)
spelleffect <argn>,<argn2> <uid.<findid.i_blood_oath.tag.link>>
endif
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
consume i_blood_oath
endif
////////////////////////////// VENGEFUL SPIRIT ////////////////////////////////
[spell 114]
DEFNAME=s_vengeful_spirit
NAME=Vengeful Spirit
SOUND=019c
RUNES=
CAST_TIME=8.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_vengeful_spirit
FLAGS=SPELLFLAG_HARM|SPELLFLAG_TARG_CHAR
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=41
SKILLREQ=Necromancy 80.0
INTERRUPT=100.0,100.0
ON=@Start
src.say @0100 Kal Xen Bal Beh
if <src.restest i_Revenant_tracker>
src.sysmessage @,3,1 You still have a revenant tracking a victim.
return 1
endif
ON=@Success
if (<src.mana><41)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 41
local.lmc = <eval 41*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
serv.newitem i_revenant_tracker
new.equip <src>
serv.newnpc c_revenant
new.flags |= statf_conjured
new.str += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.dex += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.int += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.hits += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.stam += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.mana += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.tag.owner=<src.uid>
new.tag.victim=<act.uid>
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))>
local.npc=<new.uid>
serv.newitem i_vengeful_spirit
new.more1=(<eval <src.spiritspeak>*80>/12000)+10
new.cont <local.npc>
new.cont.findid.i_vengeful_spirit.trigger=@equip
try uid.<local.npc>.update
[ITEMDEF i_revenant_tracker]
ID=i_memory
NAME=Revenant Tracker
TYPE=t_eq_script
[ITEMDEF i_vengeful_spirit]
ID=i_memory
NAME=Vengeful Spirit
TYPE=t_eq_script
ON=@Equip
timer=1
ON=@Timer
if (<uid.<cont.tag0.victim>.flags> & statf_dead)
uid.<cont.tag.owner>.findid.i_revenant_tracker.remove
uid.<cont.tag.owner>.sysmessage @,3,1 Your revenant succeeded!
cont.remove
return 1
else
cont.p=<uid.<cont.tag.victim>.p>
cont.move <eval(rand(3))+-(rand(3))>
cont.attack <uid.<cont.tag.victim>>
more1 -= 1
if (<more1> < 1)
uid.<cont.tag.owner>.findid.i_revenant_tracker.remove
uid.<cont.tag.owner>.sysmessage @,3,1 Your revenant failed.
cont.remove
endif
timer=10
return 1
endif
[CHARDEF c_revenant]
ID=c_m_ghost
NAME=Revenant
SOUND=snd_MONSTER_GHOST1
CAN=MT_USEHANDS|MT_EQUIP|MT_WALK|MT_RUN
DAM=0
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=65
TAG.FIRERESIST=20
TAG.COLDRESIST=65
TAG.POISONRESIST=100
TAG.ENERGYRESIST=65
ON=@Create
EVENTS +e_revenant
NPC=brain_monster
COLOR=0455
STR=100
DEX=100
INT=100
SWORDSMANSHIP=100.0
MAGICRESISTANCE=120.0
TACTICS=100.0
KARMA=-5000
FAME=0
ON=@NPCRestock
ITEMNEWBIE=i_hooded_shroud
COLOR=0455
ITEMNEWBIE=i_halberd
COLOR=0455
[EVENTS e_revenant]
ON=@Death
uid.<tag.owner>.findid.i_revenant_tracker.remove
uid.<tag.owner>.sysmessage @,3,1 Your revenant failed.
ON=@Kill
if (<argo.uid>==<tag.victim>)
uid.<tag.owner>.findid.i_revenant_tracker.remove
uid.<tag.owner>.sysmessage @,3,1 Your revenant succeeded!
remove
endif
ON=@ATTACK
if <src.uid> = <tag.owner>
return 1
endif
ON=@CLICK
message @0482,3,1 [<uid.<tag.owner>.name>'s]
message @066d,3,1 a revenant
return 1
ON=@HIT
local.damage = <str>-100>
local.argn1 = <eval <local.damage>/5>
argn1=<local.argn1>
/////////////////////// EVIL OMEN /////////////////////////
[spell 105]
DEFNAME=s_evil_omen
NAME=Evil Omen
SOUND=0245
RUNES=
CAST_TIME=1.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_evil_omen
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=11
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Pas Tym An Sanct
ON=@Success
if (<src.mana><11)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 11
local.lmc = <eval 11*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.isevent.e_evil_omen>
act.events -e_evil_omen
return 1
endif
act.events +e_evil_omen
serv.newitem i_fx_curse
new.color=0b94
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
return 1
[events e_evil_omen]
ON=@GetHit
argn1 += <argn1>/4
events -e_evil_omen
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
sound 0245
events -e_evil_omen
endif
///////////// VAMPIRIC EMBRANCE //////////////
[spell 113]
DEFNAME=s_vampiric_embrace
NAME=Vampiric Embrace
SOUND=01eb
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_vampiric_embrace
FLAGS=SPELLFLAG_RESIST
EFFECT_ID=i_fx_smoke
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 99.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen An Sanct
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move n
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move s
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move e
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move w
if !(<src.body>==c_vampire_bat)
src.consume i_beast_form
src.consume i_wraith_form
src.consume i_liche_form
serv.newitem i_vampire_form
new.timer=2
act.equip <new>
src.updatex
else
src.consume i_vampire_form
src.updatex
endif
return 1
[itemdef i_vampire_form]
NAME=Vampire Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
cont.body=c_vampire_bat
cont.color=0
cont.modstr += 20
cont.moddex += 20
cont.modint += 20
cont.resfire -= 25
cont.events +e_vampire_form
ON=@UnEquip
cont.resfire =+25
cont.body=<src.obody>
cont.color=<src.oskin>
cont.modstr -= 20
cont.moddex -= 20
cont.modint -= 20
cont.events -e_vampire_form
ON=@Timer
cont.stam += {2 5}
if (<cont.stam> > <cont.maxstam>)
cont.stam=<cont.maxstam>
endif
cont.mana += {2 5}
if (<cont.mana> > <cont.maxmana>)
cont.mana=<cont.maxmana>
endif
timer=2
return 1
[events e_vampire_form]
ON=@Spellcast
if (<argn>==56)
src.sysmessage @,3,1 You can't do that in your current state.
return 1
endif
ON=@Hit
hits += (<argn1>/100)*20
if <hits> > <maxhits>
hits=<maxhits>
endif
////////////////// HORFIRIC BEAST //////////////////////
[spell 106]
DEFNAME=s_horrific_beast
NAME=Horrific Beast
SOUND=snd_spell_summon_daemon
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_horrific_beast
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=11
SKILLREQ=Necromancy 40.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen Vas Bal
ON=@Success
if (<src.mana><11)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 11
local.lmc = <eval 11*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem=i_beast_fx
new.attr=attr_static|attr_decay
new.timer=2
new.p=<act.p>
if !(<src.body>==c_Moloch)
src.consume i_liche_form
src.consume i_wraith_form
src.consume i_vampire_form
serv.newitem i_beast_form
new.timer=0
act.equip <new>
src.updatex
else
src.sound snd_spell_summon_daemon
src.consume i_beast_form
src.updatex
endif
return 1
[itemdef i_beast_form]
NAME=Beast Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.body=c_Moloch
src.color=0
src.events +e_beast_form
ON=@UnEquip
src.body=<src.obody>
src.color=<src.oskin>
src.events -e_beast_form
ON=@Timer
cont.hits += 1
if (<cont.hits> > <cont.maxhits>)
cont.hits=<cont.maxhits>
endif
timer=0
return 1
[events e_beast_form]
ON=@Hit
argn1 += <argn1>/4
ON=@Spellcast
if !((<argn>==106) || (<argn>==107) || (<argn>==113) || (<argn>==116))
src.sysmessage @,3,1 You cannot do that in your current state.
return 1
endif
[itemdef i_beast_fx]
defname=i_beast_fx
name=beast fx
id=i_fx_smoke
on=@create
color=colors_neutral
///////////////////////// LICHE FORM //////////////////////////
[spell 107]
DEFNAME=s_liche_form
NAME=Liche Form
SOUND=00fb
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_lich_transformation
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 70.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen Corp Ort
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem=i_liche_fx
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
if !(<src.body>==c_liche)
src.consume i_beast_form
src.consume i_wraith_form
src.consume i_vampire_form
serv.newitem i_liche_form
new.timer=1
act.equip <new>
src.updatex
else
src.consume i_liche_form
src.updatex
endif
return 1
[itemdef i_liche_form]
NAME=liche Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.body=c_liche
src.color=0
src.events +e_liche_form
ON=@UnEquip
src.body=<src.obody>
src.color=<src.oskin>
src.events -e_liche_form
ON=@Timer
cont.mana += 2
if (<cont.mana> > <cont.maxmana>)
cont.mana=<cont.maxmana>
endif
timer=1
return 1
[events e_liche_form]
ON=@Spellcast
if (<argn>==56)
src.sysmessage @,3,1 You cannot do that in your current state.
return 1
endif
[itemdef i_liche_fx]
defname=i_liche_fx
name=liche fx
id=i_fire_column
type=t_script
on=@create
color=0900
///////////////////////////// STRANGLE /////////////////////////////
[spell 111]
DEFNAME=s_strangle
NAME=Strangle
SOUND=00fc
RUNES=
CAST_TIME=2.5
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_strangle
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=29
SKILLREQ=Necromancy 65.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Bal Nox
ON=@Success
if (<src.mana><29)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 29
local.lmc = <eval 29*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
act.effect 3,i_fx_heal_effect,16,20,0,0900,1
serv.newitem i_strangle
new.more1=(<eval <src.spiritspeak>>/100)
new.more2=<eval {<eval (<eval <src.spiritspeak>>/150)-2> <eval (<eval <src.spiritspeak>>/150)+1>)>
new.timer=<new.more1>
if (<new.timer><1)
new.timer 0
endif
new.tag.damuid = <src.uid>
act.equip <new>
return 1
[itemdef i_strangle]
NAME=Strangle
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Timer
local.multiplier=<eval ((<cont.maxstam>+20)-<cont.stam>)/20>)
local.damage=<eval <more2>*<local.multiplier>>
cont.effect 3,i_fx_heal_effect,16,20,0,0900,1
cont.damage <local.damage> dam_poison <uid.<tag.damuid>>
more1 -= 1
if (<more1> < 1)
remove
endif
timer=<more1>
return 1
//////////////////////// WITHER ////////////////////////////
[spell 115]
DEFNAME=s_wither
NAME=Wither
SOUND=0108
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=i_rune_weaken
SCROLL_ITEM=i_scroll_wither
FLAGS=SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=i_fx_curse
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 60.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Kal Vas An Flam
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
local.tmp=<obj>
obj=<uid>
forchars 5
if !(<uid>=<src.uid>)
if !((strmatch("*ice*","<id>")) || (strmatch("*snow*","<id>")) || (strmatch("*cold*","<id>")) || (strmatch("*frost*","<id>")) || (strmatch("*polar*","<id>")))
damage 15 dam_cold <obj>
endif
endif
endfor
obj=<local.tmp>
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w,4
serv.newitem i_frost_wither
new.ATTR=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw,4
return 1
[itemdef i_frost_wither]
defname=i_frost_wither
name=Frost
id=i_fx_curse
ON=@Create
color=0481
ON=@Step
IF !((strmatch("*ice*","<src.id>")) || (strmatch("*snow*","<src.id>")) || (strmatch("*cold*","<src.id>")) || (strmatch("*frost*","<src.id>")) || (strmatch("*polar*","<src.id>")))
src.damage 15 dam_cold <uid.<tag.owner>>
ENDIF
///////////////////// SUMMON FAMILIAR ////////////////////////
[spell 112]
DEFNAME=s_summon_familiar
NAME=Summon Familiar
SOUND=0214
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_summon_familiar
FLAGS=SPELLFLAG_SUMMON|SPELLFLAG_PLAYERONLY
EFFECT_ID=
EFFECT=0
DURATION=0
MANAUSE=14
SKILLREQ=Necromancy 30.0
INTERRUPT=100.0,100.0
ON=@Start
src.say @0100 Kal Xen Bal
ON=@SUCCESS
if (<src.mana><14)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 14
local.lmc = <eval 14*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
skillmenu sm_summon_familiar
return 1
[skillmenu sm_summon_familiar]
Which familiar do you wish to summon?
ON=i_pet_hordedaemon Horde Minion
TEST=necromancy 30.0 spiritspeak 30.0
SUMMON=c_familiar_horde_minion
ON=i_pet_wisp Shadow Wisp
TEST=necromancy 50.0 spiritspeak 50.0
SUMMON=c_familiar_wisp_shadow
ON=i_pet_wolf Dark Wolf
TEST=necromancy 60.0 spiritspeak 60.0
SUMMON=c_familiar_dark_wolf
ON=i_pet_snake_giant Death Adder
TEST=necromancy 80.0 spiritspeak 80.0
SUMMON=c_familiar_death_adder
ON=i_pet_vampirebat Vampire Bat
TEST=necromancy 100.0 spiritspeak 100.0
SUMMON=c_familiar_vampire_bat
/////////////////////// MIND ROT /////////////////////////
[spell 108]
DEFNAME=s_mind_rot
NAME=Mind Rot
SOUND=0213
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=i_rune_poison
SCROLL_ITEM=i_scroll_mind_rot
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM
EFFECT_ID=08771
EFFECT=33,44
DURATION=0
MANAUSE=17
SKILLREQ=Necromancy 30.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Wis An Ben
ON=@Success
if (<src.mana><17)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 17
local.lmc = <eval 17*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.restest i_mind_rot>
act.consume i_mind_rot
return 1
endif
serv.newitem=i_fx_curse
new.color=0480
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
serv.newitem i_mind_rot
new.timer=(<eval <src.spiritspeak>-<act.magicresistance>>/50)+20
if (<new.timer><1)
new.timer 0
endif
act.equip <new>
return 1
[itemdef i_mind_rot]
ID=i_memory
name=mind rot
TYPE=t_eq_script
ON=@Equip
src.events +e_mind_rot
ON=@UnEquip
cont.events -e_mind_rot
ON=@Timer
remove
return 1
[events e_mind_rot]
ON=@SpellSelect
mana -= {5 15}
if (<src.mana> < 0)
src.mana=0
endif
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
consume i_mind_rot
endif
/////////////////////// WRAITH FORM ////////////////////////////
[spell 116]
DEFNAME=s_wraith_form
NAME=Wraith Form
SOUND=01d2
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=i_rune_weaken
SCROLL_ITEM=i_scroll_wraith_form
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=17
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen Um
ON=@Success
if (<src.mana><17)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 17
local.lmc = <eval 17*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem=i_wraith_fx
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
if !(<src.body>==c_spectre)
src.consume i_beast_form
src.consume i_liche_form
src.consume i_vampire_form
serv.newitem i_wraith_form
act.equip <new>
updatex
else
src.consume i_wraith_form
src.updatex
endif
return 1
[itemdef i_wraith_form]
NAME=Wraith Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.body=c_m_wraith
src.color=07fff
src.events +e_wraith
src.resfire += 5
src.resenergy += 5
src.modar += 10
ON=@UnEquip
src.body=<src.obody>
src.color=<src.oskin>
src.events -e_wraith
src.resfire -= 5
src.resenergy -= 5
src.modar -= 10
[events e_wraith]
ON=@Hit
src.sound 1307
mana += <eval (<argn1>/3)*2>
src.mana -= <eval (<argn1>/3)*2>
if (<src.mana> > <maxmana>)
mana=<maxmana>
endif
if (<src.mana> < 0)
src.mana=0
endif
ON=@Spellcast
if (<argn>==56)
src.sysmessage @,3,1 You cannot do that in your current state.
return 1
endif
[itemdef i_wraith_fx]
defname=i_wraith_fx
name=wraith fx
id=i_fx_smoke
on=@create
color=00afd
///////////////////// CORPSE SKIN //////////////////////
[spell 103]
DEFNAME=s_corpse_skin
NAME=Corpse Skin
SOUND=snd_spell_weaken
RUNES=
CAST_TIME=2.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_corpse_skin
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=11
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Agle Corp Ylem
ON=@Success
if (<src.mana><11)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 11
local.lmc = <eval 11*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.restest i_corpse_skin>
act.consume i_corpse_skin
act.sound snd_spell_weaken
return 1
endif
serv.newitem i_liche_fx
new.attr=attr_static|attr_decay
new.timer=2
new.p=<act.p>
serv.newitem i_corpse_skin
new.timer=(<eval <src.spiritspeak>-<act.magicresistance>>/25)+40
if (<new.timer><1)
new.timer 0
endif
act.equip <new>
return 1
[itemdef i_corpse_skin]
NAME=Corpse Skin
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
cont.modar += 30
cont.rescold += 30
cont.respoison -= 30
cont.resfire -= 30
cont.color=0059f
cont.events +e_corpse
ON=@UNEQUIP
cont.sound snd_spell_weaken
cont.modar -= 30
cont.rescold -= 30
cont.respoison += 30
cont.resfire += 30
cont.color=<cont.oskin>
cont.events -e_corpse
ON=@Timer
cont.sound snd_spell_weaken
remove
return 1
[events e_corpse]
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
sound snd_spell_weaken
consume i_corpse_skin
endif
////////////////////////// CURSE WEAPON ////////////////////////////
[spell 104]
DEFNAME=s_curse_weapon
NAME=Curse Weapon
SOUND=snd_spell_curse
RUNES=
CAST_TIME=1.0
RESOURCES=
RUNE_ITEM=i_rune_curse
SCROLL_ITEM=i_scroll_curse_weapon
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=7
SKILLREQ=Necromancy 0.1
INTERRUPT=100.0,100.0
ON=@Start
src.say @0100 An Sanct Gra Char
if !(<src.findlayer.1.isweapon>) & !(<src.findlayer.2.isweapon>)
src.message @,3,1 that is not a weapon.
return 1
endif
ON=@Success
if (<src.mana><7)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 7
local.lmc = <eval 7*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
if <src.restest i_curse_weapon>
src.consume i_curse_weapon
return 1
endif
if (<src.findlayer.1.isweapon>)
src.tag.cursed_weapon=<src.findlayer.1.uid>
src.message @,3,1 you cursed your <src.findlayer.1.name> for a short time.
else (<src.findlayer.2.isweapon>)
src.tag.cursed_weapon=<src.findlayer.2.uid>
src.message @,3,1 you cursed your <src.findlayer.2.name> for a short time.
endif
serv.newitem i_curse_weapon
new.timer=(<eval <src.spiritspeak>/75>)+1
if (<new.timer><1)
new.timer 0
endif
new.equip <src>
return 1
[itemdef i_curse_weapon]
NAME=Curse Weapon
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.events +e_curse_weapon
link=<src.tag.cursed_weapon>
ON=@UnEquip
cont.events -e_curse_weapon
cont.tag.cursed_weapon=
cont.sound snd_spell_magic_arrow
ON=@Timer
remove
return 1
[events e_curse_weapon]
ON=@Hit
if (<argo.uid>==<tag0.cursed_weapon>)
serv.newitem i_fx_curse
new.color=0481
new.attr=attr_static|attr_decay
new.timer=1
new.p=<src.p>
sound 1317
hits += <argn1>/2
if <hits> > <maxhits>
hits=<maxhits>
endif
endif
DEFNAME=i_spellbook_necromancy
NAME=Necromancy Spellbook
TYPE=t_spellbook_necro
RESOURCES=80 i_parchment,1 i_hide_normal, 1 i_cloth
WEIGHT=1
ON=@Create
ATTR=attr_magic|attr_newbie
morez=100
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Necromancers
DESCRIPTION=Necromancy Spellbook
ON=@DropOn_Self
if <argo.type> == t_scroll
if (<argo.morex> > <morez>) && (<argo.morex> < <eval <morez>+100>)
if <more1> != (<more1> | <argo.more1>)
sfx 058
more1 |= <argo.more1>
if <argo.amount> == 1
argo.remove
else
argo.amount -= 1
argo.update
endif
return 1
endif
endif
endif
[ITEMDEF 02260]
DEFNAME=i_scroll_animate_dead
TYPE=t_scroll
WEIGHT=1
VALUE=120
NAME=Animate Dead Scroll
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 40.0
ON=@Create
ATTR=attr_magic
MORE1=01
MOREX=s_animate_dead
MOREY={50 80}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Animate Dead
[ITEMDEF 02261]
DEFNAME=i_scroll_blood_oath
NAME=Blood Oath Scroll
TYPE=t_scroll
WEIGHT=1
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
ON=@Create
ATTR=attr_magic
MORE1=02
MOREX=s_blood_oath
MOREY={50 80}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Blood Oath
[ITEMDEF 02262]
DEFNAME=i_scroll_corpse_skin
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Corpse Skin Scroll
ON=@Create
ATTR=attr_magic
MORE1=04
MOREX=s_corpse_skin
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Corpse Skin
[ITEMDEF 02263]
DEFNAME=i_scroll_curse_weapon
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 0.1
NAME=Curse Weapon Scroll
ON=@Create
ATTR=attr_magic
MORE1=08
MOREX=s_curse_weapon
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Curse Weapon
[ITEMDEF 02264]
DEFNAME=i_scroll_evil_omen
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Evil Omen Scroll
ON=@Create
ATTR=attr_magic
MORE1=010
MOREX=s_evil_omen
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Evil Omen
[ITEMDEF 02265]
DEFNAME=i_scroll_horrific_beast
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 40.0
NAME=Horrific Beast Scroll
ON=@Create
ATTR=attr_magic
MORE1=020
MOREX=s_horrific_beast
MOREY={10 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Horrific Beast
[ITEMDEF 02266]
DEFNAME=i_scroll_lich_transformation
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 70.0
NAME=Lich Form Scroll
ON=@Create
ATTR=attr_magic
MORE1=040
MOREX=s_liche_form
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Lich transformation
[ITEMDEF 02267]
DEFNAME=i_scroll_mind_rot
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 30.0
NAME=Mind Rot Scroll
ON=@Create
ATTR=attr_magic
MORE1=080
MOREX=s_mind_rot
MOREY={10 10}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Mind Rot
[ITEMDEF 02268]
DEFNAME=i_scroll_pain_spike
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Pain Spike Scroll
ON=@Create
ATTR=attr_magic
MORE1=0100
MOREX=s_pain_Spike
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Pain Spike
[ITEMDEF 02269]
DEFNAME=i_scroll_poison_strike
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 50.0
NAME=Poison Strike Scroll
ON=@Create
ATTR=attr_magic
MORE1=0200
MOREX=s_poison_strike
MOREY={20 50}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Poison Strike
[ITEMDEF 0226a]
DEFNAME=i_scroll_strangle
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 65.0
NAME=Strangle Scroll
ON=@Create
ATTR=attr_magic
MORE1=0400
MOREX=s_strangle
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Strangulation
[ITEMDEF 0226b]
DEFNAME=i_scroll_summon_familiar
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 30.0
NAME=Summon Familiar Scroll
ON=@Create
ATTR=attr_magic
MORE1=0800
MOREX=s_summon_familiar
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Summon Familiar
[ITEMDEF 0226c]
DEFNAME=i_scroll_vampiric_embrace
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 99.0
NAME=Vampiric Embrace Scroll
ON=@Create
ATTR=attr_magic
MORE1=01000
MOREX=s_vampiric_embrace
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Vampiric Embrace
[ITEMDEF 0226d]
DEFNAME=i_scroll_vengeful_spirit
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 80.0
NAME=Vengeful Spirit Scroll
ON=@Create
ATTR=attr_magic
MORE1=02000
MOREX=s_vengeful_spirit
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Vengeful Spirit
[ITEMDEF 0226e]
DEFNAME=i_scroll_wither
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 60.0
NAME=Wither Scroll
ON=@Create
ATTR=attr_magic
MORE1=04000
MOREX=s_wither
MOREY={20 20}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Wither
[ITEMDEF 0226f]
DEFNAME=i_scroll_wraith_form
TYPE=t_scroll
WEIGHT=1
VALUE=120
RESOURCES=i_scroll_blank
SKILLMAKE=INSCRIPTION 98.0, NECROMANCY 20.0
NAME=Wraith Form Scroll
ON=@Create
ATTR=attr_magic
MORE1=08000
MOREX=s_wraith_form
MOREY={20 60}
CATEGORY=Provisions - Alchemy & Magic
SUBSECTION=Scrolls - Necromancy
DESCRIPTION=Wraith Form
//////////////////// FAMILIARS ////////////////////////
[CHARDEF c_familiar_horde_minion]
ID=c_horde_minion
NAME=Horde Minion
DAM=14,20
CAN=MT_WALK|MT_RUN|MT_USEHANDS
MOVERATE=40
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=55
TAG.FIRERESIST=55
TAG.POISONRESIST=30
TAG.ENERGYRESIST=30
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Horde Minion
ON=@Create
EVENTS +e_familiar_horde_minion
NPC=brain_monster
STR=100
DEX=110
INT=100
MAXHITS=70
MAXSTAM=110
TACTICS=50.0
WRESTLING=75.0
FAME=0
KARMA=0
[EVENTS e_familiar_horde_minion]
ON=@ItemStep
if !( (<act.attr>&attr_static) || (<act.attr>&attr_move_never) || (<act.attr>&attr_invis) || (<act.attr>&attr_owned) )
emote pick up an item for his master.
act.cont=<owner.findlayer.layer_pack.uid>
endif
[CHARDEF c_familiar_wisp_shadow]
ID=c_wisp
NAME=Shadow Wisp
DAM=2,8
CAN=MT_WALK|MT_FLY|MT_FIRE_IMMUNE|MT_USEHANDS
TAG.PHYSICALDAMAGE=50
TAG.ENERGYDAMAGE=50
TAG.PHYSICALRESIST=15
TAG.FIRERESIST=15
TAG.POISONRESIST=15
TAG.ENERGYRESIST=100
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Shadow Wisp
ON=@Create
EVENTS +e_familiar_shadow_wisp
NPC=brain_monster
COLOR=colors_black
STR=50
DEX=60
INT=100
TACTICS=40.0
WRESTLING=40.0
FAME=0
KARMA=0
ITEMNEWBIE=i_light_source
ATTR=attr_magic|attr_newbie
ITEMNEWBIE=i_wisp_mana_equiper
ITEMNEWBIE=i_wisp_mana_timer
ATTR=attr_magic|attr_newbie
[ITEMDEF i_wisp_mana_equiper]
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wisp Mana Equiper
ON=@CREATE
TIMER=1
ON=@TIMER
trysrc <cont.uid> cont.findid.i_wisp_mana_timer.trigger=@equip
remove
return 1
[ITEMDEF i_wisp_mana_timer]
NAME=Wisp Mana Timer
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wisp Mana Timer
ON=@Equip
timer={15 25}
ON=@Timer
if (<cont.owner.karma> < 0) && (<cont.owner.karma> > -1000)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 10
elseif (<cont.owner.karma> < 1000) && (<cont.owner.karma> > -2500)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 20
elseif (<cont.owner.karma> < 2500) && (<cont.owner.karma> > -5000)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 30
elseif (<cont.owner.karma> < 5000) && (<cont.owner.karma> > -7500)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 40
elseif (<cont.owner.karma> < 7500)
cont.owner.sound snd_monster_wisp1
cont.owner.mana += 50
endif
if (<cont.owner.mana> > <cont.owner.maxmana>)
cont.owner.mana=<cont.owner.maxmana>
endif
timer={15 25}
return 1
[EVENTS e_familiar_shadow_wisp]
[CHARDEF c_familiar_dark_wolf]
ID=c_wolf
NAME=Dark Wolf
DAM=15,33
CAN=MT_WALK|MT_RUN
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=45
TAG.FIRERESIST=35
TAG.COLDRESIST=35
TAG.POISONRESIST=35
TAG.ENERGYRESIST=35
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Dark Wolf
ON=@Create
EVENTS +e_familiar_dark_wolf
NPC=brain_animal
COLOR=colors_black
STR=100
DEX=90
INT=90
MAXHITS=60
MAXSTAM=90
TACTICS=50.0
WRESTLING=87.5
FAME=0
KARMA=0
ITEMNEWBIE=i_wolf_stam_equiper
ITEMNEWBIE=i_wolf_stam_timer
ATTR=attr_magic|attr_newbie
[ITEMDEF i_wolf_stam_equiper]
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wolf Stamina Equiper
ON=@CREATE
TIMER=1
ON=@TIMER
trysrc <cont.uid> cont.findid.i_wolf_stam_timer.trigger=@equip
remove
return 1
[ITEMDEF i_wolf_stam_timer]
NAME=Wolf Stamina Timer
ID=i_memory
TYPE=t_eq_script
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wolf Stamina Timer
ON=@Equip
timer=2
ON=@Timer
cont.owner.stam += 1
if (<cont.owner.stam> > <cont.owner.maxstam>)
cont.owner.stam=<cont.owner.maxstam>
endif
timer=2
return 1
[EVENTS e_familiar_dark_wolf]
ON=@Dclick
if (<ismypet>)
serv.newitem i_wolf_mastery
new.equip <src>
return 1
endif
[ITEMDEF i_wolf_mastery]
ID=i_memory
TYPE=t_eq_script
NAME=Wolf Mastery
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Wolf Mastery
ON=@Equip
TARGET @,3,1 Which wolf would you like to control?
TIMER=15
ON=@Timer
remove
return 1
ON=@TargOn_Item
remove
return 1
ON=@TargOn_Ground
remove
return 1
ON=@TargOn_Char
if !(strmatch("*wolf*","<cont.targ.id>"))
cont.sysmessage @,3,1 That is not a wolf!
remove
return 1
else
if (<CONT.CURFOLLOWER>>4)
CONT.sysmessage @,3,1 You have too many followers.
return 1
endif
if (<src.tag0.slots_needed>)
local.slots = (<src.tag0.slots_needed>)
else
local.slots = 1
endif
SRC.CURFOLLOWER += <local.slots>
local.npc=<cont.targ.uid>
cont.targ.flags=<cont.targ.flags>|statf_pet
while (<cont.targ.memoryfindtype.02>)
cont.targ.memoryfindtype.02.remove
endwhile
serv.newitem i_memory
new.color=042
new.link=<cont.uid>
new.cont=<local.npc>
try uid.<local.npc>.update
cont.sysmessage @,3,1 The wolf will accept your orders!
remove
return 1
endif
[CHARDEF c_familiar_death_adder]
ID=c_snake_giant
NAME=Death Adder
DAM=1,4
CAN=MT_WALK|MT_RUN
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=10
TAG.POISONRESIST=100
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Death Adder
ON=@Create
EVENTS +e_familiar_death_adder
NPC=brain_monster
COLOR=colors_snake
STR=70
DEX=150
INT=100
MAXHITS=50
MAXSTAM=150
TACTICS=50.0
WRESTLING=90.0
POISONING=150.0
FAME=0
KARMA=0
[EVENTS e_familiar_death_adder]
ON=@Dclick
if (<ismypet>)
serv.newitem i_snake_charming
new.equip <src>
return 1
endif
[ITEMDEF i_snake_charming]
ID=i_memory
TYPE=t_eq_script
NAME=Snake Charming
CATEGORY=Memories
SUBSECTION=Miscellaneous
DESCRIPTION=Snake Charming
ON=@Equip
TARGET @,3,1 Which snake would you like to control?
TIMER=15
ON=@Timer
remove
return 1
ON=@TargOn_Item
remove
return 1
ON=@TargOn_Ground
remove
return 1
ON=@TargOn_Char
if !(strmatch("*snake*","<cont.targ.id>"))
cont.sysmessage @,3,1 That is not a snake!
remove
return 1
else
if (<CONT.CURFOLLOWER>>4)
CONT.sysmessage @,3,1 You have too many followers.
return 1
endif
if (<src.tag0.slots_needed>)
local.slots = (<src.tag0.slots_needed>)
else
local.slots = 1
endif
SRC.CURFOLLOWER += <local.slots>
local.npc=<cont.targ.uid>
cont.targ.flags=<cont.targ.flags>|statf_pet
while (<cont.targ.memoryfindtype.02>)
cont.targ.memoryfindtype.02.remove
endwhile
serv.newitem i_memory
new.color=042
new.link=<cont.uid>
new.cont=<local.npc>
try uid.<local.npc>.update
cont.sysmessage @,3,1 The snake will accept your orders!
remove
return 1
endif
[chardef c_familiar_vampire_bat]
ID=c_vampire_bat
NAME=Vampire Bat
DAM=7,21
CAN=MT_WALK|MT_FLY
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=15
TAG.FIRERESIST=15
TAG.COLDRESIST=15
TAG.POISONRESIST=15
TAG.ENERGYRESIST=15
CATEGORY=Summons
SUBSECTION=Familiars
DESCRIPTION=Vampire Bat
ON=@Create
EVENTS +e_familiar_vampire_bat
NPC=brain_monster
STR=120
DEX=120
INT=100
MAXHITS=90
TACTICS=50.0
WRESTLING=95.0
FAME=0
KARMA=0
[EVENTS e_familiar_vampire_bat]
ON=@Hit
owner.hits += <eval <argn1>>
if (<owner.hits> > <owner.maxhits>)
owner.hits=<owner.maxhits>
endif
//// BÜYÜLER ////
[spell 110]
DEFNAME=s_poison_strike
NAME=Poison Strike
SOUND=snd_spell_poison_field
CAST_TIME=2.0
RESOURCES=
RUNE_ITEM=i_rune_poison
SCROLL_ITEM=i_scroll_poison_strike
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=0
EFFECT=0
DURATION=1.0,15.0
MANAUSE=17
SKILLREQ=Necromancy 50.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Vas Nox
ON=@Success
if (<src.mana><17)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 17
local.lmc = <eval 17*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
local.resist = <act.respoison>/5
if !(<local.resist>>14)
act.damage <eval 15-<local.resist>> 1 <src.uid>
ENDIF
act.spelleffect 20 1000
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move n
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move s
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move e
serv.newitem i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move w
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))> <eval(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
serv.newitem=i_poison_cloud
new.attr=attr_static|attr_decay
new.tag.owner=<src.uid>
new.timer={5 10}
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))> <eval(rand(6))+-(rand(6))>
return 1
[itemdef i_poison_cloud]
defname=i_poison_cloud
name=Poison Cloud
id=i_fx_smoke
ON=@Create
color=045
ON=@Step
src.spelleffect 20 500
local.resist = <src.respoison>/5
if !(<local.resist>>5)
src.damage <eval 6-<local.resist>> 1 <uid.<tag.owner>>
ENDIF
remove
fix
return 1
///////////////////// ANIMATE DEAD /////////////////////////
[Spell 101]
DEFNAME=s_animate_dead
NAME=Animate Dead
SOUND=snd_spell_resurrection
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=i_rune_resurrection
SCROLL_ITEM=i_scroll_animate_dead
FLAGS=spellflag_summon
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 40.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Uus Corp
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
if <src.restest i_animate_dead>
src.consume i_animate_dead
return 1
endif
serv.newitem i_animate_dead
new.equip <src>
[ITEMDEF i_animate_dead]
ID=i_memory
TYPE=t_eq_script
NAME=Animate Dead
ON=@Equip
TARGET @,3,1 Which corpse would you like to animate?
TIMER=15
ON=@Timer
remove
return 1
ON=@TargOn_Ground
remove
return 1
ON=@TargOn_Char
remove
return 1
ON=@TargOn_Item
local.casterability=(<eval ((<cont.necromancy>/100)*30)+((<cont.spiritspeak>/100)*70)>*180)
if (<local.casterability> > <cont.targ.tag0.corpsefame>)
local.casterability=<cont.targ.tag.corpsefame>
endif
if !(<cont.targ.baseid>==i_corpse)
cont.sysmessage @,3,1 That is not a corpse.
remove
return 1
elseif ((<cont.targ.amount>==400) || (<cont.targ.amount>==401))
cont.sysmessage @,3,1 The spirit of that corpse is still around.
remove
return 1
else
serv.newitem=i_fx_smoke
new.attr=attr_static|attr_decay
new.timer=1
new.p=<cont.targ.p>
if (<local.casterability> > 17500)
serv.newnpc c_skeletal_dragon
elseif (<local.casterability> > 15000)
serv.newnpc c_m_liche_lord
elseif (<local.casterability> > 12500)
serv.newnpc c_flesh_golem
elseif (<local.casterability> > 10000)
serv.newnpc c_mummy
elseif (<local.casterability> > 8000)
serv.newnpc c_liche
elseif (<local.casterability> > 6000)
serv.newnpc c_m_skeleton_knight
elseif (<local.casterability> > 4000)
serv.newnpc c_m_skeleton_mage
elseif (<local.casterability> > 2000)
serv.newnpc c_patchwork_skeleton
else
serv.newnpc c_mound_maggots
endif
local.npc=<new.uid>
new.p=<cont.targ.p>
new.flags |= statf_conjured
new.maxhits=(<eval <local.casterability>/50>)
new.hits=<new.maxhits>
new.karma=-2500
new.fame=0
new.events +e_animate_dead
serv.newitem i_animate_checker
new.timer=1
new.cont=<local.npc>
cont.targ.remove
remove
return 1
endif
[ITEMDEF i_animate_checker]
ID=i_memory
TYPE=t_eq_script
NAME=Animate Checker
ON=@Timer
cont.hits -= 1
cont.maxhits -= 1
if (<cont.hits> < 0)
cont.hits=0
cont.remove
endif
timer=1
return 1
[events e_animate_dead]
ON=@NPCLookAtChar
if !((<src.body>==c_man) || (<src.body>==c_woman) || (<src.isplayer>))
attack
return 1
endif
ON=@Death
src.remove
////////////////////////// PAIN SPIKE //////////////////////////
[spell 109]
DEFNAME=s_pain_spike
NAME=Pain Spike
SOUND=0210
RUNES=
CAST_TIME=1.0
RESOURCES=
RUNE_ITEM=i_rune_poison
SCROLL_ITEM=i_scroll_pain_spike
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=5
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Sar
ON=@Success
if (<src.mana><5)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 5
local.lmc = <eval 5*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
serv.newitem i_pain_spike
new.more1=<eval <src.spiritspeak>/60>-<eval <act.magicresistance>/120>
act.EFFECT 3,i_fx_glow_spike,1,8,0,39,3
act.EFFECT 3,i_fx_glow_spike,1,8,0,39,4
act.damage <eval <new.more1>> 02 <uid>
new.equip
return 1
[itemdef i_pain_spike]
NAME=Pain Spike
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
timer=10
ON=@Timer
if !(<cont.flags> & statf_dead)
cont.sound 0210
cont.hits += <eval <more1>>
if (<cont.hits> > <cont.maxhits>)
cont.hits=<cont.maxhits>
endif
remove
return 1
else
remove
return 1
endif
//////////////////////// BLOOD OATH /////////////////////////////
[spell 102]
DEFNAME=s_blood_oath
NAME=Blood Oath
SOUND=01e9
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_blood_oath
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=i_fx_curse
EFFECT=33,44
DURATION=0
MANAUSE=13
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Jux Mani Xen
ON=@Success
if (<src.mana><13)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 13
local.lmc = <eval 13*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.restest i_blood_oath>
act.consume i_blood_oath
return 1
endif
act.effect 3,i_fx_curse,16,20
act.sound 01e9
serv.newitem i_blood_oath
new.tag.link=<src.uid>
new.timer=(<eval <src.spiritspeak>-<act.magicresistance>>/80)+8
if (<new.timer><1)
timer 0
endif
act.equip <new>
return 1
[itemdef i_blood_oath]
ID=i_memory
NAME=blood oath
TYPE=t_eq_script
ON=@Equip
src.events +e_blood_oath
ON=@UnEquip
cont.events -e_blood_oath
ON=@Timer
remove
return 1
[events e_blood_oath]
ON=@Hit
damage <argn1> <argn2> <uid.<findid.i_blood_oath.tag.link>>
ON=@SpellCast
if (<serv.spell.<argn>.flags>&SPELLFLAG_HARM)
spelleffect <argn>,<argn2> <uid.<findid.i_blood_oath.tag.link>>
endif
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
consume i_blood_oath
endif
////////////////////////////// VENGEFUL SPIRIT ////////////////////////////////
[spell 114]
DEFNAME=s_vengeful_spirit
NAME=Vengeful Spirit
SOUND=019c
RUNES=
CAST_TIME=8.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_vengeful_spirit
FLAGS=SPELLFLAG_HARM|SPELLFLAG_TARG_CHAR
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=41
SKILLREQ=Necromancy 80.0
INTERRUPT=100.0,100.0
ON=@Start
src.say @0100 Kal Xen Bal Beh
if <src.restest i_Revenant_tracker>
src.sysmessage @,3,1 You still have a revenant tracking a victim.
return 1
endif
ON=@Success
if (<src.mana><41)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 41
local.lmc = <eval 41*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
serv.newitem i_revenant_tracker
new.equip <src>
serv.newnpc c_revenant
new.flags |= statf_conjured
new.str += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.dex += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.int += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.hits += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.stam += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.mana += <eval <eval <src.necromancy>/20>+<eval <src.spiritspeak>/20>>
new.tag.owner=<src.uid>
new.tag.victim=<act.uid>
new.p=<act.p>
new.move <eval(rand(6))+-(rand(6))>
local.npc=<new.uid>
serv.newitem i_vengeful_spirit
new.more1=(<eval <src.spiritspeak>*80>/12000)+10
new.cont <local.npc>
new.cont.findid.i_vengeful_spirit.trigger=@equip
try uid.<local.npc>.update
[ITEMDEF i_revenant_tracker]
ID=i_memory
NAME=Revenant Tracker
TYPE=t_eq_script
[ITEMDEF i_vengeful_spirit]
ID=i_memory
NAME=Vengeful Spirit
TYPE=t_eq_script
ON=@Equip
timer=1
ON=@Timer
if (<uid.<cont.tag0.victim>.flags> & statf_dead)
uid.<cont.tag.owner>.findid.i_revenant_tracker.remove
uid.<cont.tag.owner>.sysmessage @,3,1 Your revenant succeeded!
cont.remove
return 1
else
cont.p=<uid.<cont.tag.victim>.p>
cont.move <eval(rand(3))+-(rand(3))>
cont.attack <uid.<cont.tag.victim>>
more1 -= 1
if (<more1> < 1)
uid.<cont.tag.owner>.findid.i_revenant_tracker.remove
uid.<cont.tag.owner>.sysmessage @,3,1 Your revenant failed.
cont.remove
endif
timer=10
return 1
endif
[CHARDEF c_revenant]
ID=c_m_ghost
NAME=Revenant
SOUND=snd_MONSTER_GHOST1
CAN=MT_USEHANDS|MT_EQUIP|MT_WALK|MT_RUN
DAM=0
TAG.PHYSICALDAMAGE=100
TAG.PHYSICALRESIST=65
TAG.FIRERESIST=20
TAG.COLDRESIST=65
TAG.POISONRESIST=100
TAG.ENERGYRESIST=65
ON=@Create
EVENTS +e_revenant
NPC=brain_monster
COLOR=0455
STR=100
DEX=100
INT=100
SWORDSMANSHIP=100.0
MAGICRESISTANCE=120.0
TACTICS=100.0
KARMA=-5000
FAME=0
ON=@NPCRestock
ITEMNEWBIE=i_hooded_shroud
COLOR=0455
ITEMNEWBIE=i_halberd
COLOR=0455
[EVENTS e_revenant]
ON=@Death
uid.<tag.owner>.findid.i_revenant_tracker.remove
uid.<tag.owner>.sysmessage @,3,1 Your revenant failed.
ON=@Kill
if (<argo.uid>==<tag.victim>)
uid.<tag.owner>.findid.i_revenant_tracker.remove
uid.<tag.owner>.sysmessage @,3,1 Your revenant succeeded!
remove
endif
ON=@ATTACK
if <src.uid> = <tag.owner>
return 1
endif
ON=@CLICK
message @0482,3,1 [<uid.<tag.owner>.name>'s]
message @066d,3,1 a revenant
return 1
ON=@HIT
local.damage = <str>-100>
local.argn1 = <eval <local.damage>/5>
argn1=<local.argn1>
/////////////////////// EVIL OMEN /////////////////////////
[spell 105]
DEFNAME=s_evil_omen
NAME=Evil Omen
SOUND=0245
RUNES=
CAST_TIME=1.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_evil_omen
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=11
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Pas Tym An Sanct
ON=@Success
if (<src.mana><11)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 11
local.lmc = <eval 11*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.isevent.e_evil_omen>
act.events -e_evil_omen
return 1
endif
act.events +e_evil_omen
serv.newitem i_fx_curse
new.color=0b94
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
return 1
[events e_evil_omen]
ON=@GetHit
argn1 += <argn1>/4
events -e_evil_omen
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
sound 0245
events -e_evil_omen
endif
///////////// VAMPIRIC EMBRANCE //////////////
[spell 113]
DEFNAME=s_vampiric_embrace
NAME=Vampiric Embrace
SOUND=01eb
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_vampiric_embrace
FLAGS=SPELLFLAG_RESIST
EFFECT_ID=i_fx_smoke
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 99.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen An Sanct
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move n
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move s
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move e
serv.newitem i_fx_bless_effect
new.color=00B38
new.attr=attr_static|attr_decay
new.timer=2
new.p=<src.p>
new.move w
if !(<src.body>==c_vampire_bat)
src.consume i_beast_form
src.consume i_wraith_form
src.consume i_liche_form
serv.newitem i_vampire_form
new.timer=2
act.equip <new>
src.updatex
else
src.consume i_vampire_form
src.updatex
endif
return 1
[itemdef i_vampire_form]
NAME=Vampire Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
cont.body=c_vampire_bat
cont.color=0
cont.modstr += 20
cont.moddex += 20
cont.modint += 20
cont.resfire -= 25
cont.events +e_vampire_form
ON=@UnEquip
cont.resfire =+25
cont.body=<src.obody>
cont.color=<src.oskin>
cont.modstr -= 20
cont.moddex -= 20
cont.modint -= 20
cont.events -e_vampire_form
ON=@Timer
cont.stam += {2 5}
if (<cont.stam> > <cont.maxstam>)
cont.stam=<cont.maxstam>
endif
cont.mana += {2 5}
if (<cont.mana> > <cont.maxmana>)
cont.mana=<cont.maxmana>
endif
timer=2
return 1
[events e_vampire_form]
ON=@Spellcast
if (<argn>==56)
src.sysmessage @,3,1 You can't do that in your current state.
return 1
endif
ON=@Hit
hits += (<argn1>/100)*20
if <hits> > <maxhits>
hits=<maxhits>
endif
////////////////// HORFIRIC BEAST //////////////////////
[spell 106]
DEFNAME=s_horrific_beast
NAME=Horrific Beast
SOUND=snd_spell_summon_daemon
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_horrific_beast
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=11
SKILLREQ=Necromancy 40.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen Vas Bal
ON=@Success
if (<src.mana><11)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 11
local.lmc = <eval 11*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem=i_beast_fx
new.attr=attr_static|attr_decay
new.timer=2
new.p=<act.p>
if !(<src.body>==c_Moloch)
src.consume i_liche_form
src.consume i_wraith_form
src.consume i_vampire_form
serv.newitem i_beast_form
new.timer=0
act.equip <new>
src.updatex
else
src.sound snd_spell_summon_daemon
src.consume i_beast_form
src.updatex
endif
return 1
[itemdef i_beast_form]
NAME=Beast Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.body=c_Moloch
src.color=0
src.events +e_beast_form
ON=@UnEquip
src.body=<src.obody>
src.color=<src.oskin>
src.events -e_beast_form
ON=@Timer
cont.hits += 1
if (<cont.hits> > <cont.maxhits>)
cont.hits=<cont.maxhits>
endif
timer=0
return 1
[events e_beast_form]
ON=@Hit
argn1 += <argn1>/4
ON=@Spellcast
if !((<argn>==106) || (<argn>==107) || (<argn>==113) || (<argn>==116))
src.sysmessage @,3,1 You cannot do that in your current state.
return 1
endif
[itemdef i_beast_fx]
defname=i_beast_fx
name=beast fx
id=i_fx_smoke
on=@create
color=colors_neutral
///////////////////////// LICHE FORM //////////////////////////
[spell 107]
DEFNAME=s_liche_form
NAME=Liche Form
SOUND=00fb
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_lich_transformation
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 70.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen Corp Ort
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem=i_liche_fx
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
if !(<src.body>==c_liche)
src.consume i_beast_form
src.consume i_wraith_form
src.consume i_vampire_form
serv.newitem i_liche_form
new.timer=1
act.equip <new>
src.updatex
else
src.consume i_liche_form
src.updatex
endif
return 1
[itemdef i_liche_form]
NAME=liche Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.body=c_liche
src.color=0
src.events +e_liche_form
ON=@UnEquip
src.body=<src.obody>
src.color=<src.oskin>
src.events -e_liche_form
ON=@Timer
cont.mana += 2
if (<cont.mana> > <cont.maxmana>)
cont.mana=<cont.maxmana>
endif
timer=1
return 1
[events e_liche_form]
ON=@Spellcast
if (<argn>==56)
src.sysmessage @,3,1 You cannot do that in your current state.
return 1
endif
[itemdef i_liche_fx]
defname=i_liche_fx
name=liche fx
id=i_fire_column
type=t_script
on=@create
color=0900
///////////////////////////// STRANGLE /////////////////////////////
[spell 111]
DEFNAME=s_strangle
NAME=Strangle
SOUND=00fc
RUNES=
CAST_TIME=2.5
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_strangle
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=29
SKILLREQ=Necromancy 65.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Bal Nox
ON=@Success
if (<src.mana><29)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 29
local.lmc = <eval 29*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
act.effect 3,i_fx_heal_effect,16,20,0,0900,1
serv.newitem i_strangle
new.more1=(<eval <src.spiritspeak>>/100)
new.more2=<eval {<eval (<eval <src.spiritspeak>>/150)-2> <eval (<eval <src.spiritspeak>>/150)+1>)>
new.timer=<new.more1>
if (<new.timer><1)
new.timer 0
endif
new.tag.damuid = <src.uid>
act.equip <new>
return 1
[itemdef i_strangle]
NAME=Strangle
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Timer
local.multiplier=<eval ((<cont.maxstam>+20)-<cont.stam>)/20>)
local.damage=<eval <more2>*<local.multiplier>>
cont.effect 3,i_fx_heal_effect,16,20,0,0900,1
cont.damage <local.damage> dam_poison <uid.<tag.damuid>>
more1 -= 1
if (<more1> < 1)
remove
endif
timer=<more1>
return 1
//////////////////////// WITHER ////////////////////////////
[spell 115]
DEFNAME=s_wither
NAME=Wither
SOUND=0108
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=i_rune_weaken
SCROLL_ITEM=i_scroll_wither
FLAGS=SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=i_fx_curse
EFFECT=0
DURATION=0
MANAUSE=23
SKILLREQ=Necromancy 60.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Kal Vas An Flam
ON=@Success
if (<src.mana><23)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 23
local.lmc = <eval 23*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
local.tmp=<obj>
obj=<uid>
forchars 5
if !(<uid>=<src.uid>)
if !((strmatch("*ice*","<id>")) || (strmatch("*snow*","<id>")) || (strmatch("*cold*","<id>")) || (strmatch("*frost*","<id>")) || (strmatch("*polar*","<id>")))
damage 15 dam_cold <obj>
endif
endif
endfor
obj=<local.tmp>
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move n,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move s,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move e,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move w,4
serv.newitem i_frost_wither
new.ATTR=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw,2
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw,3
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move ne,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move sw,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move se,4
serv.newitem i_frost_wither
new.attr=attr_static|attr_decay
new.tag.owner <src.uid>
new.timer=5
new.p=<src.p>
new.move nw,4
return 1
[itemdef i_frost_wither]
defname=i_frost_wither
name=Frost
id=i_fx_curse
ON=@Create
color=0481
ON=@Step
IF !((strmatch("*ice*","<src.id>")) || (strmatch("*snow*","<src.id>")) || (strmatch("*cold*","<src.id>")) || (strmatch("*frost*","<src.id>")) || (strmatch("*polar*","<src.id>")))
src.damage 15 dam_cold <uid.<tag.owner>>
ENDIF
///////////////////// SUMMON FAMILIAR ////////////////////////
[spell 112]
DEFNAME=s_summon_familiar
NAME=Summon Familiar
SOUND=0214
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_summon_familiar
FLAGS=SPELLFLAG_SUMMON|SPELLFLAG_PLAYERONLY
EFFECT_ID=
EFFECT=0
DURATION=0
MANAUSE=14
SKILLREQ=Necromancy 30.0
INTERRUPT=100.0,100.0
ON=@Start
src.say @0100 Kal Xen Bal
ON=@SUCCESS
if (<src.mana><14)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 14
local.lmc = <eval 14*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
skillmenu sm_summon_familiar
return 1
[skillmenu sm_summon_familiar]
Which familiar do you wish to summon?
ON=i_pet_hordedaemon Horde Minion
TEST=necromancy 30.0 spiritspeak 30.0
SUMMON=c_familiar_horde_minion
ON=i_pet_wisp Shadow Wisp
TEST=necromancy 50.0 spiritspeak 50.0
SUMMON=c_familiar_wisp_shadow
ON=i_pet_wolf Dark Wolf
TEST=necromancy 60.0 spiritspeak 60.0
SUMMON=c_familiar_dark_wolf
ON=i_pet_snake_giant Death Adder
TEST=necromancy 80.0 spiritspeak 80.0
SUMMON=c_familiar_death_adder
ON=i_pet_vampirebat Vampire Bat
TEST=necromancy 100.0 spiritspeak 100.0
SUMMON=c_familiar_vampire_bat
/////////////////////// MIND ROT /////////////////////////
[spell 108]
DEFNAME=s_mind_rot
NAME=Mind Rot
SOUND=0213
RUNES=
CAST_TIME=1.5
RESOURCES=
RUNE_ITEM=i_rune_poison
SCROLL_ITEM=i_scroll_mind_rot
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM
EFFECT_ID=08771
EFFECT=33,44
DURATION=0
MANAUSE=17
SKILLREQ=Necromancy 30.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Wis An Ben
ON=@Success
if (<src.mana><17)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 17
local.lmc = <eval 17*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.restest i_mind_rot>
act.consume i_mind_rot
return 1
endif
serv.newitem=i_fx_curse
new.color=0480
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
serv.newitem i_mind_rot
new.timer=(<eval <src.spiritspeak>-<act.magicresistance>>/50)+20
if (<new.timer><1)
new.timer 0
endif
act.equip <new>
return 1
[itemdef i_mind_rot]
ID=i_memory
name=mind rot
TYPE=t_eq_script
ON=@Equip
src.events +e_mind_rot
ON=@UnEquip
cont.events -e_mind_rot
ON=@Timer
remove
return 1
[events e_mind_rot]
ON=@SpellSelect
mana -= {5 15}
if (<src.mana> < 0)
src.mana=0
endif
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
consume i_mind_rot
endif
/////////////////////// WRAITH FORM ////////////////////////////
[spell 116]
DEFNAME=s_wraith_form
NAME=Wraith Form
SOUND=01d2
RUNES=
CAST_TIME=4.0
RESOURCES=
RUNE_ITEM=i_rune_weaken
SCROLL_ITEM=i_scroll_wraith_form
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=17
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 Rel Xen Um
ON=@Success
if (<src.mana><17)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 17
local.lmc = <eval 17*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
serv.newitem=i_wraith_fx
new.attr=attr_static|attr_decay
new.timer=1
new.p=<act.p>
if !(<src.body>==c_spectre)
src.consume i_beast_form
src.consume i_liche_form
src.consume i_vampire_form
serv.newitem i_wraith_form
act.equip <new>
updatex
else
src.consume i_wraith_form
src.updatex
endif
return 1
[itemdef i_wraith_form]
NAME=Wraith Form
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.body=c_m_wraith
src.color=07fff
src.events +e_wraith
src.resfire += 5
src.resenergy += 5
src.modar += 10
ON=@UnEquip
src.body=<src.obody>
src.color=<src.oskin>
src.events -e_wraith
src.resfire -= 5
src.resenergy -= 5
src.modar -= 10
[events e_wraith]
ON=@Hit
src.sound 1307
mana += <eval (<argn1>/3)*2>
src.mana -= <eval (<argn1>/3)*2>
if (<src.mana> > <maxmana>)
mana=<maxmana>
endif
if (<src.mana> < 0)
src.mana=0
endif
ON=@Spellcast
if (<argn>==56)
src.sysmessage @,3,1 You cannot do that in your current state.
return 1
endif
[itemdef i_wraith_fx]
defname=i_wraith_fx
name=wraith fx
id=i_fx_smoke
on=@create
color=00afd
///////////////////// CORPSE SKIN //////////////////////
[spell 103]
DEFNAME=s_corpse_skin
NAME=Corpse Skin
SOUND=snd_spell_weaken
RUNES=
CAST_TIME=2.0
RESOURCES=
RUNE_ITEM=
SCROLL_ITEM=i_scroll_corpse_skin
FLAGS=SPELLFLAG_TARG_CHAR | SPELLFLAG_DIR_ANIM | SPELLFLAG_HARM | SPELLFLAG_FX_TARG
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=11
SKILLREQ=Necromancy 20.0
INTERRUPT=100.0,100.0
ON=@START
src.say @0100 In Agle Corp Ylem
ON=@Success
if (<src.mana><11)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 11
local.lmc = <eval 11*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
act.damage 0 1 <src.uid>
if <act.restest i_corpse_skin>
act.consume i_corpse_skin
act.sound snd_spell_weaken
return 1
endif
serv.newitem i_liche_fx
new.attr=attr_static|attr_decay
new.timer=2
new.p=<act.p>
serv.newitem i_corpse_skin
new.timer=(<eval <src.spiritspeak>-<act.magicresistance>>/25)+40
if (<new.timer><1)
new.timer 0
endif
act.equip <new>
return 1
[itemdef i_corpse_skin]
NAME=Corpse Skin
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
cont.modar += 30
cont.rescold += 30
cont.respoison -= 30
cont.resfire -= 30
cont.color=0059f
cont.events +e_corpse
ON=@UNEQUIP
cont.sound snd_spell_weaken
cont.modar -= 30
cont.rescold -= 30
cont.respoison += 30
cont.resfire += 30
cont.color=<cont.oskin>
cont.events -e_corpse
ON=@Timer
cont.sound snd_spell_weaken
remove
return 1
[events e_corpse]
ON=@Spelleffect
if (<argn> == 34) || (<argn> == 41)
sound snd_spell_weaken
consume i_corpse_skin
endif
////////////////////////// CURSE WEAPON ////////////////////////////
[spell 104]
DEFNAME=s_curse_weapon
NAME=Curse Weapon
SOUND=snd_spell_curse
RUNES=
CAST_TIME=1.0
RESOURCES=
RUNE_ITEM=i_rune_curse
SCROLL_ITEM=i_scroll_curse_weapon
FLAGS=
EFFECT_ID=0
EFFECT=0
DURATION=0
MANAUSE=7
SKILLREQ=Necromancy 0.1
INTERRUPT=100.0,100.0
ON=@Start
src.say @0100 An Sanct Gra Char
if !(<src.findlayer.1.isweapon>) & !(<src.findlayer.2.isweapon>)
src.message @,3,1 that is not a weapon.
return 1
endif
ON=@Success
if (<src.mana><7)
src.sysmessage @,3,1 You lack sufficient mana for this spell.
return 1
endif
src.mana -= 7
local.lmc = <eval 7*<src.tag0.lmc>>/100
src.mana += <eval <local.lmc>>
if <src.restest i_curse_weapon>
src.consume i_curse_weapon
return 1
endif
if (<src.findlayer.1.isweapon>)
src.tag.cursed_weapon=<src.findlayer.1.uid>
src.message @,3,1 you cursed your <src.findlayer.1.name> for a short time.
else (<src.findlayer.2.isweapon>)
src.tag.cursed_weapon=<src.findlayer.2.uid>
src.message @,3,1 you cursed your <src.findlayer.2.name> for a short time.
endif
serv.newitem i_curse_weapon
new.timer=(<eval <src.spiritspeak>/75>)+1
if (<new.timer><1)
new.timer 0
endif
new.equip <src>
return 1
[itemdef i_curse_weapon]
NAME=Curse Weapon
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Equip
src.events +e_curse_weapon
link=<src.tag.cursed_weapon>
ON=@UnEquip
cont.events -e_curse_weapon
cont.tag.cursed_weapon=
cont.sound snd_spell_magic_arrow
ON=@Timer
remove
return 1
[events e_curse_weapon]
ON=@Hit
if (<argo.uid>==<tag0.cursed_weapon>)
serv.newitem i_fx_curse
new.color=0481
new.attr=attr_static|attr_decay
new.timer=1
new.p=<src.p>
sound 1317
hits += <argn1>/2
if <hits> > <maxhits>
hits=<maxhits>
endif
endif
Yorumlar
Henüz yorum yapılmamıştır.
|
OylamalarOylama :![]()
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış
Oylar: 0 |
Benzer Sayfalar
| Sayfalar | Yorumlar | Gönderen | Tarih |
| Soloraid system / solo instance | 0 | Mrs.xariyla | 09-03-2012 |
| Check System | 0 | Cyrus | 23-09-2011 |
| Rare Cicek System | 0 | Xle | 20-09-2011 |
| Doom Dungeon System | 0 | Pentagram | 02-11-2010 |
| Focus Skill System | 0 | Pentagram | 01-11-2010 |







