UO-Dev Arama


Klasik necromancy sistemi

Yazar: anonim // edit by Aydın
Tarih: 06-08-2009 00:45


Paylaş : Paylaş

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



Yorumlar

Henüz yorum yapılmamıştır.

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış   
Oylar: 0

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Soloraid system / solo instance0Mrs.xariyla09-03-2012
Check System0Cyrus23-09-2011
Rare Cicek System0Xle20-09-2011
Doom Dungeon System0Pentagram02-11-2010
Focus Skill System0Pentagram01-11-2010


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,