Anasayfa
UO Sunucular
Forumlar
Profilim
UO-Developer.COM
[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

UO-Dev SPONSOR

Paylaş

XFacebook

Faydalı mı?

Bu içerik size yardımcı oldu mu?

UO-Dev SPONSOR

Henüz yorum yapılmamış. Yorum yazabilmek için giriş yapmanız gerekir.

Üyelerin oylama ortalaması (10 dışında) :

Henüz Oylanmamış

Oylar: 0

Paylaş

XFacebook

Faydalı mı?

Bu içerik size yardımcı oldu mu?